我已将代理添加到VS2008 / .NET 3.5解决方案的Web服务。 构造客户端.NET时,会引发以下错误:
在ServiceModel客户端配置部分中找不到引用合同'IMySOAPWebService'的默认终结点元素。 这可能是因为没有为您的应用程序找到配置文件,或者是在client元素中找不到与该协定匹配的端点元素。
搜索此错误告诉我在合同中使用完整的名称空间。 这是带有完整名称空间的我的app.config:
<client>
<endpoint address="http://192.168.100.87:7001/soap/IMySOAPWebService"
binding="basicHttpBinding" bindingConfiguration="IMySOAPWebServicebinding"
contract="Fusion.DataExchange.Workflows.IMySOAPWebService" name="IMySOAPWebServicePort" />
</client>
我在本地运行XP(我之所以这么说是因为许多Google命中都提到了win2k3)app.config已复制到app.exe.config,所以这也不是问题。
有什么线索吗?
#1楼
如果您使用的是使用PRISM框架的WPF应用程序,则配置应存在于您的启动项目中(即,引导程序所在的项目中)。
#2楼
我曾经遇到这个问题。 这是因为我仍在开发使用WCF服务的接口。 我配置了测试应用程序并继续开发。 然后在开发中,我更改了一些服务的名称空间。 所以我仔细检查了web.config中的“ system.serviceModel->客户端->端点->合同”以匹配WCF类。 然后问题解决了。
#3楼
这使我发疯。
我在WCF中使用Silverlight 3 Prism(CAB)
当我在棱镜模块中调用WCF服务时,出现相同的错误:
在服务模型客户端配置部分中找不到引用合同“ IMyService”的默认端点元素。 这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与该合同匹配的端点元素
事实证明,它是在Shell的.xap文件中查找ServiceReferences.ClientConfig文件,而不是在模块的ServiceReferences.ClientConfig文件中。 我在我的Silverlight Shell应用程序中添加了端点并将其绑定到现有的ServiceReferences.ClientConfig文件(它称为它自己的WCF服务)。
然后,我必须重建Shell应用程序,以为Web项目的ClientBin文件夹生成新的.xap文件。
现在这行代码终于可以工作了:
MyServiceClient myService = new MyServiceClient();
#4楼
请允许我再添加一件事。 ( 汤姆·海格的答案已经暗示了这一点,但我想明确地说)
我的web.config
文件具有以下定义:
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
我已经使用basicHttpsBinding作为一个引用,但是后来我添加了一个新的引用,该引用需要basicHttpBinding(否)。 我要做的就是将其添加到我的protocolMapping
,如下所示:
<protocolMapping>
<add binding="basicHttpBinding" scheme="http" />
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
正如LR正确指出的那样,这需要在正确的位置定义。 对我来说,这意味着在我的单元测试项目的app.config中以及在主服务项目的web.config中。
#5楼
我在WCF服务已添加到类库中的ASP.NET应用程序中收到此错误,该类库已作为bin文件夹中引用的.dll文件添加到ASP.NET应用程序中。 要解决该错误,需要将引用WCF服务的类库中app.config文件中的配置设置复制到ASP.NET站点/应用程序的web.config设置中。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3175200