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

有线索吗?


当前回答

“如果在类库中调用服务,并从另一个项目调用类库,则可能出现此错误。”

在这种情况下,如果是winapp或web,则需要将WS配置设置包含到主项目app.config中。配置如果它是一个web应用程序。这是即使与PRISM和WPF/Silverlight的方式。

其他回答

对我来说,解决方案是从客户端web.config中的端点名称属性中删除端点名称 这允许代理使用

ChannelFactory<TService> _channelFactory = new ChannelFactory<TService>("");

锻炼了一整天。 此外,一旦这个修复到位,合同名称是错误的,尽管它在最初的错误出现时是错误的。 再三检查合同名称字符串的人!! 属性:伊恩

“如果在类库中调用服务,并从另一个项目调用类库,则可能出现此错误。”

在这种情况下,如果是winapp或web,则需要将WS配置设置包含到主项目app.config中。配置如果它是一个web应用程序。这是即使与PRISM和WPF/Silverlight的方式。

如果在类库中调用服务,并从另一个项目调用类库,则可能出现此错误。

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

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

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