如何与ASP.NET 4.0网站和C#WCF(Web服务)之间发送数据

时间:2013-05-09 01:32:04

标签: asp.net wcf iis connection

我想知道 - 在我的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。

WCFService:

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通过各种连接字符串到数据库。

1 个答案:

答案 0 :(得分:0)

详细说明我的评论,这是一个精简的例子。顺便说一下,您可以通过非常简单的Google搜索找到许多如何执行此操作的示例。

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

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

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

ServiceClient client = new ServiceClient();

string serviceResponse = client.GetData(5);

client.Close();

这将为serviceResponse返回“您输入:5”。

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

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

再次,请参阅Accessing Services Using a WCF Client,如果这还不够,Google会搜索更多示例。

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