我已经在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。配置,所以这也不是问题。

有线索吗?


当前回答

好的。我的情况有点不同,但最后我找到了解决办法: 我有一个控制台。exe -> DLL ->调用WS1 -> DLL ->调用WS2

我已经按照建议在Console.EXE.config中配置了WS1和WS2的服务模型。没有解决问题。

但它仍然没有工作,直到我将WS2的WebReference也添加到WS1,而不仅仅是添加到实际创建和调用WS2代理的DLL中。

其他回答

请允许我再补充一点。(Tom Haigh的回答已经暗示了这一点,但我想明确一点)

我的网络。配置文件定义如下:

<protocolMapping>
    <add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>

我已经使用basicHttpBinding作为一个引用,但随后我添加了一个需要basicHttpBinding的新引用。我所要做的就是将其添加到我的protocolMapping中,如下所示:

<protocolMapping>
    <add binding="basicHttpBinding" scheme="http" />
    <add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>

正如L.R.所正确指出的,这需要在正确的地方进行定义。对我来说,这意味着在我的单元测试项目的app.config和主服务项目的web.config中都有一个。

在测试了几个选项之后,我最终通过使用

contract=“IMySOAPWebService”

例如,在配置中没有完整的命名空间。由于某种原因,全名没有正确解析

我也有同样的问题 我正在使用桌面应用程序和全球天气网络服务

我删除了服务引用,并添加了web引用,问题解决了 谢谢

配置中的名称空间应该反映客户端默认名称空间(如在项目属性中配置的那样)之后的名称空间路径的其余部分。根据你发布的答案,我猜你的客户端被配置为“Fusion.DataExchange”。工作流”名称空间。如果将客户端代码移动到另一个名称空间,则需要更新配置以匹配剩余的名称空间路径。

我也有同样的问题。我在类库中使用WCF服务,并从windows应用程序项目调用类库。但我是忘记改变<系统。serviceModel>在windows应用程序项目的配置文件中。类库app.Config文件的serviceModel>。 解决方案:将外部项目的配置与类库的wcf配置相同。