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

有线索吗?


当前回答

如果在类库中引用web服务,则必须将app.config复制到windows应用程序或控制台应用程序中

解决方案:将外部项目的配置与类库的wcf配置相同。

为我工作

其他回答

在我的案例中,我已经将app.config重命名为[appname].exe。手动配置。这最终在文件名中添加了一个额外的.config后缀。解决方案是将其重命名为[appname].exe,以消除额外的.config扩展名。

嗨,我也遇到过同样的问题,但是最好的解决方案是让. net来配置你的客户端配置。当我使用http:/namespace/service.svc?查询字符串添加服务引用时,我发现了这一点。wsdl=wsdl0,它不会在客户端创建配置端点。但是当我删除wsdl-wsdl0并且只使用url http:/namespace/service时。Svc,它在客户端配置文件中创建端点配置。简而言之,去掉“?WSDL=WSDL0”。

我曾经遇到过这个问题。这是因为我还在开发使用WCF服务的接口。我配置测试应用程序和继续开发。然后在开发中,我改变了一些服务的名称空间。所以我再次检查了“系统”。serviceModel ->客户端->端点->合同”。配置匹配WCF类。那么问题就解决了。

请允许我再补充一点。(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中都有一个。

在我的例子中,我指的是一个图书馆项目的服务,而不是一个创业项目。 一旦我复制<system。serviceModel>节配置主启动项目,问题得到解决。

在任何应用程序的运行阶段,配置将从启动/父项目读取,而不是在单独的子项目中读取自己的配置。