今天在测试WCF 服务是时候,在客户端访问服务,使用ChannelFactory<T> 创建契约代理。通过在客户端添加引用生成的config 配置文件,
然后调用测试,结果提示:
在 ServiceModel 客户端配置部分中,找不到名称“WSHttpBinding_ICalculator-sss”和协定“Contracts.ICalculator”的终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此名称匹配的终结点元素。
最后终于找到解决办法了:
原因是我把在Client配置节点名称做了更改,这里引用的名称必须和客户端配置文件中的 终点元素名称一致。
using (ChannelFactory<ICalculator> dd = new ChannelFactory<ICalculator>("myCalculator"))
客户端配置文件:
<client>
<endpoint address="http://127.0.0.1:9999/CalculatorService" binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_ICalculator" contract="Contracts.ICalculator"
name="myCalculator">
<identity>
<userPrincipalName value="CHINESE-E8DD5F6\Administrator" />
</identity>
</endpoint>
</client>
同时保证参数配置必须保证和服务契约配置名称一致,否则就会报此类错误(建议以后大家不要随便更改自动生成终点元素,)。
在测试WCF服务时,遇到客户端错误:找不到ServiceModel配置部分中的“WSHttpBinding_ICalculator-sss”终结点元素。问题源于客户端配置文件中的终结点元素名称与引用名称不匹配。解决方法是确保ChannelFactory引用的名称与配置文件中的终结点元素名称一致,并且服务契约配置也要对应。避免随意更改自动生成的终结点元素名称,以防止此类错误发生。

3552

被折叠的 条评论
为什么被折叠?



