打电话给网络服务:我在这里做错了什么?

时间:2011-03-16 12:02:26

标签: c# .net asp.net wcf

我有以下代码用于使用不适合我的服务。任何人都可以建议我可以做些什么来缩小什么是错误的?我知道这很模糊,所以请告诉我你需要提供什么建议。

地址是:http://localhost:57667/ExampleService.svc/

直接访问时,我会收到“您已创建服务...消息”

出错的代码就在这里。它会导致以下错误:

_url = "http://localhost:57667/ExampleService.svc";
TextReader textReader = new StringReader(HttpPostClient.Post(new Uri(_url), bodyData.ToString(), _exampleServiceRequestEncoding,     Properties.Settings.Default.HttpPostClientExampleAvailabilityTimeout));

错误消息: 直接访问此网址时:http://localhost:57667/ExampleService.svc/ProcessRequest

The exception message is 'No component for key example.ExternalWebServiceStubs.Example.ExampleService was found'. 
Castle.MicroKernel.DefaultKernel.get_Item(String key) at Castle.Facilities.WcfIntegration.WindsorInstanceProvider.GetInstance
非常感谢,

2 个答案:

答案 0 :(得分:1)

通常的做法是通过svcutil.exe(visual studio命令提示符)或“添加服务引用”来创建代理类以使用该服务,然后让您使用代理类的方法来调用您的服务方法

本教程应该有所帮助(它基于Visual Studio 2005,您没有说明您使用的是哪个版本,但您应该获得良好的基础)

http://msdn.microsoft.com/en-us/library/bb332338.aspx#msdnwcfhc_topic6

答案 1 :(得分:0)

在服务端同时提供web.config元素时,解决wcf服务会更容易。

我的一般猜测是,默认情况下所有wcf服务都使用wsHttpBinding,它不允许直接调用服务,就像我们所做的asmx服务一样。

您可以使用basicHttpBinding替换wsHttpBinding并禁用服务的安全性,以使服务像您期望的那样工作。

请添加有关ExampleService.svc绑定的更多详细信息,它将帮助您快速解决此问题

希望这会有所帮助