我有一个问题,与论坛中的许多其他问题非常相似,但没有一个解决方案对我有效——也许是因为我不明白。
我有一个非常简单的ASP.NET web服务,只有4个简单的方法。为了测试它,我从一个新创建的控制台应用程序连接到它,它运行得非常完美——只添加了URL,并让Visual Studio生成了客户端代码(它生成了2个端点,我需要删除其中的1个端点才能使其工作,我想这并不重要)。
然后我尝试在用户控制项目中做同样的事情(意思是它是一个类库)。然后它突然抛出一个异常,并在这个问题的标题中显示一条类似于on的消息。
我在VisualStudio中本地运行用户控件项目,因为它仍在测试中。
我甚至尝试将服务模型部分从另一个项目(它工作的地方)复制/粘贴到用户控制项目的app.config中,但仍然不起作用。
有什么想法吗?
编辑:这是app.config文件的servicemodel部分
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Service1Soap" />
</basicHttpBinding>
<customBinding>
<binding name="Service1Soap12">
<textMessageEncoding messageVersion="Soap12" />
<httpTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://localhost:49737/Service1.asmx" binding="basicHttpBinding"
bindingConfiguration="Service1Soap" contract="ServiceReference1.Service1Soap"
name="Service1Soap" />
</client>
对我来说,在将serviceModel部分从类库复制到ASP.Net网站的web.config之后,我仍然收到这个错误。
过了一段时间,我意识到必须完全限定端点的contract属性,因为服务位于具有不同名称空间的类库中。。
也就是说,在配置中,is说。。。contract="MyService.SoapService"etc您需要完全符合此条件。。。contract="MyClassLibraryName.Namespace.MyService.SoapService".
Conor
@kevin johnson:我不知道你说的"用户控制项目"是什么意思。将服务模型配置从工作项目复制粘贴到你的app.config是行不通的,因为当你必须使用web服务时,您必须使用将从svcutil.exe生成的app-config文件添加引用文件,或者通过将web服务作为"服务引用"添加到现有项目,除非您知道自己在做什么,否则永远不要尝试更改配置文件(app.config或web.config)。