0

我想知道 - 在我的 ASP.NET 4.0 网站中,如何连接到我正在运行的 Web 服务?

这基本上是我想要完成的,在我更大规模地应用它之前进行测试。我希望网站能够将一个值(int)从网站发送到 Web 服务中的 getData() 方法(自动生成的方法)并将其结果(字符串)返回给网站。

这是我对网站/IIS 7/WCF 的设置:

通过 VS 2010 (.NET 4.0) 网站创建网站和服务的步骤:

File > New Website
I did not change anything on the default website template
Build > Publish Web Site
  Set target location to specific folder
  Other settings unchanged

IIS 设置:

Connections - Right Click > Add Web Site
  Specified a site name
  Specified physical path
  Connect As:  Set the username/password
  Binding Default (http port 80)
Connections - Right Click on Default Web Site > Manage Web Site > Stop
...So as not to end up with two websites on conflicting port
Edit Permissions > Add user "Everyone"
MyNewSite > Manage Website > Start
...Clicked Browse Web Site > Brows *.80 (http)

网站运行得很好,我可以在本地访问它,也可以通过带有 IP 地址的 vpn 访问它。

WCF服务:

File > New Project > WCF Service Application
...I did not change any of the default settings in the WCF service

我以管理员身份运行 WCF 服务,它加载了小测试应用程序,您可以在其中向 getData() 方法输入一个值,它返回“您输入了 {some_number}”。

据我所知 - 一切都在使用网站和 wcf 服务。我还尝试在 VS 中右键单击网站,然后添加服务引用,它能够检测到 WCF 服务....但是,我不知道我应该需要添加引用,而只需像我一样连接到 WCF通过各种连接字符串到数据库。

4

1 回答 1

1

为了详细说明我的评论,这里有一个精简的例子。顺便说一句,您可以通过非常简单的 Google 搜索找到许多示例。

为了让您的网站调用任何方法,它必须具有 WCF 客户端代理。此代理用于建立与服务的连接并调用服务通过[OperationContract]属性公开的方法。

以您上面发布的示例为例,如果您创建了一个基本的没有多余装饰的 WCF 服务应用程序,并且您从 Visual Studio 中在您的网站中添加对它的引用,则会为您生成 WCF 客户端代理,以及任何必要的配置文件设置(在您的 Web.config 文件中)。

添加参考后,您可以在您的网站中执行以下操作:

ServiceClient client = new ServiceClient();

string serviceResponse = client.GetData(5);

client.Close();

这将为serviceResponse.

或者,您可以使用svcutil.exe生成 *.cs 文件和配置文件。您可以将 *.cs 文件添加到您的网站项目<system.serviceModel>中,并将配置文件的部分添加到您的 Web.config 中,然后可以使用上述代码调用该服务。

第三种方式,这是我更喜欢的方式,因为我们的应用程序在工作中的性质,它给了我更多的控制,是使用ChannelFactory<T>,但我建议先尝试上述两种方法来熟悉基础知识。

同样,请参阅使用 WCF 客户端访问服务,如果这还不够,请在 Google 上搜索更多示例。

这里的关键点是客户端需要代理才能与 WCF 服务进行通信。如何生成该代理取决于您和项目的要求。

于 2013-05-09T06:02:58.553 回答