我创建了一个托管在Windows服务中的WCF服务。我使用svcutil创建了一个代理 “svcutil.exe http://localhost:8000/ServiceModelSamples/FreeServiceWorld?wsdl”
它生成了一个output.config文件和代理类。
output.config具有以下元素
<client>
<endpoint address="http://localhost:8000/ServiceModelSamples/FreeServiceWorld"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IWeather"
contract="IWeather" name="WSHttpBinding_IWeather">
<identity>
<servicePrincipalName value="host/sdfsf.sdfs.com" />
</identity>
</endpoint>
</client>
我创建了一个网站(作为客户端)并在其中添加了一个新的C#文件(MyFile.cs)。我将代理类的内容复制到MyFile.cs中。 [output.config未复制到网站]
在aspx的代码behnid中,我使用以下代码 WeatherClient client = new WeatherClient(“WSHttpBinding_IWeather”);
它抛出一个异常,因为“找不到名称为'WSHttpBinding_IWeather'的端点元素,并在ServiceModel客户端配置部分中收缩'IWeather'。”
你能帮我理解这里缺失的链接吗?
答案 0 :(得分:2)
您需要将output.config
中的元素添加到网站的web.config
,以便客户知道在哪里查找服务。如果客户端未在与服务相同的计算机上运行,则需要交换localhost
以获取运行该服务的计算机的IP地址或主机名。