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

有线索吗?


当前回答

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

contract=“IMySOAPWebService”

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

其他回答

我在ASP中得到这个错误。其中WCF服务已添加到正在添加到asp.net应用程序中的类库中。. NET应用程序作为bin文件夹中引用的.dll文件。为了解决这个错误,需要将类库中引用WCF服务的app.config文件中的配置设置复制到web中。配置设置的ASP。网网站/应用程序。

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

contract=“IMySOAPWebService”

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

我发现(以及复制到客户端UI的App.config,因为我正在使用一个类库接口),我必须以服务引用的名称为绑定的名称前缀(我的是ServiceReference在下面)。

例如:

<endpoint address="http://localhost:4000/ServiceName" binding="basicHttpBinding"
      bindingConfiguration="BasicHttpBinding_ISchedulerService"
      contract="ServiceReference.ISchedulerService" 
      name="BasicHttpBinding_ISchedulerService" />

而不是默认生成:

<endpoint address="http://localhost:4000/ServiceName" binding="basicHttpBinding"
      bindingConfiguration="BasicHttpBinding_ISchedulerService"
      contract="ISchedulerService" 
      name="BasicHttpBinding_ISchedulerService" />

我遇到过这样的情况,我

WCF服务托管在某处 主要项目 类型为“类库”的消费者项目,该项目具有对WCF服务的服务引用 主项目从使用者项目调用方法

现在Consumer项目已经在<system中设置了所有相关的配置。我的app.config的serviceModel>标签,它仍然抛出与上面相同的错误。

我所做的只是添加了相同的标签<system。serviceModel>到我的主项目的app.config文件,最后我们就可以开始了。

就我的情况而言,真正的问题是读取了错误的配置文件。而不是消费者的app.config,它引用的是主项目的配置。我花了两个小时才弄明白。

我遇到了同样的问题,只有当主机应用程序和使用该端点的dll具有相同的服务引用名称时,才解决了这个问题。