今天在测试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>
同时保证参数配置必须保证和服务契约配置名称一致,否则就会报此类错误(建议以后大家不要随便更改自动生成终点元素,)。