我已经在VS2008/中添加了web服务的代理。NET 3.5解决方案。在构造客户端。net时会抛出以下错误:
在ServiceModel客户端配置部分中找不到引用合约“IMySOAPWebService”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中没有找到与此契约匹配的端点元素。
搜索此错误告诉我在契约中使用完整的名称空间。这是我的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本地(我提到这是因为一些谷歌点击提到win2k3)
将app.config复制到app.exe。配置,所以这也不是问题。
有线索吗?
这让我抓狂。
我使用的是带有WCF的Silverlight 3 Prism (CAB)
当我在Prism模块中调用WCF服务时,我得到了相同的错误:
找不到引用合同的默认端点元素
服务模型客户端配置部分中的'IMyService'。这
可能是因为没有找到应用程序的配置文件
或者因为找不到与此契约匹配的端点元素
在client元素中
原来它在Shell的.xap文件中寻找ServiceReferences。ClientConfig文件,而不是模块的ServiceReferences中。ClientConfig文件。我将端点和绑定添加到现有的servicereference中。我的Silverlight Shell应用程序中的ClientConfig文件(它调用它自己的WCF服务)。
然后,我必须重新构建Shell应用程序,为我的Web项目的ClientBin文件夹生成新的.xap文件。
现在这行代码终于可以工作了:
MyServiceClient myService = new MyServiceClient();
There seem to be several ways to create/fix this issue. For me, the CRM product I am using was written in native code and is able to call my .NET dll, but I run into the configuration information needing to be at/above the main application. For me, the CRM application isn't .NET, so I ended up having to put it in my machine.config file (not where I want it). In addition, since my company uses Websense I had a hard time even adding the Service Reference due to a 407 Proxy Authentication Required issue, that to required a modification to the machine.cong.
代理解决方案:
为了让WCF服务引用工作,我必须从我的DLL的app.config复制信息到主应用程序配置(但对我来说是machine.config)。我还必须将端点信息复制到同一个文件中。一旦我这么做了,它就开始为我工作了。