Wcf ClientBaseAddress不';似乎不容易接近
我使用的是wsDualHttpBinding,服务器是自托管的。 我遇到了一个问题,在我看来,我的客户的ClientBaseAddress无法访问。我不知道如何解决这个问题 这是我的服务配置:Wcf ClientBaseAddress不';似乎不容易接近,wcf,.net-4.5,endpoint,wsdualhttpbinding,Wcf,.net 4.5,Endpoint,Wsdualhttpbinding,我使用的是wsDualHttpBinding,服务器是自托管的。 我遇到了一个问题,在我看来,我的客户的ClientBaseAddress无法访问。我不知道如何解决这个问题 这是我的服务配置: <system.serviceModel> <services> <service name="GuiEndpoint.GuiService"> <endpoint address="" binding="wsDualHt
<system.serviceModel>
<services>
<service name="GuiEndpoint.GuiService">
<endpoint address=""
binding="wsDualHttpBinding"
bindingConfiguration="GuiEndpoint"
name="dualHttpBinding"
contract="Common.IGuiService">
<!--<identity>
<dns value="localhost"/>
</identity>-->
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" name="mex" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://192.168.1.199:8733/Design_Time_Addresses/GuiEndpoint/IGuiService/"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<wsDualHttpBinding>
<binding name="GuiEndpoint">
<security mode="None">
<message clientCredentialType="None"/>
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<diagnostics>
<messageLogging logEntireMessage="true"
maxMessagesToLog="300"
logMessagesAtServiceLevel="true"
logMalformedMessages="true"
logMessagesAtTransportLevel="true" />
</diagnostics>
现在,使用Fidler,我可以看到消息来回传递
服务器:
客户:
如您所见,客户机可以与服务器对话,但服务器似乎无法与客户机对话
我还在客户端上注册了名称空间:
客户端端口也可以访问:
Starting Nmap 6.25 ( http://nmap.org ) at 2013-01-03 14:05 Mountain Standard Time
Nmap scan report for 192.168.1.189
Host is up (0.10s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
MAC Address: xx:0B:A9:57:xx:xx (Intel Corporate)
Nmap done: 1 IP address (1 host up) scanned in 13.42 seconds
这里的任何帮助都会很好 Microsoft没有在任何文档中添加的内容是: 在ClientBaseAddress中指定的IP地址必须可解析为主机名。换句话说,如果服务器不能通过其主机名ping客户端,那么您将永远无法建立连接 正如你发现的那样,它根本不起作用 尝试用客户端PC的主机名替换192.168.1.189,如下所示:
http://ClientHostName:8080/TempURI
同样作为提示,如果您不想注册任何端口,只需使用地址即可
http://MyClientHostName/Temporary_Listen_Addresses/TempUri
因为您可以注册任何以
http://+80/Temporary_Listen_Addresses/
此外,两台计算机上的Windows防火墙都已完全关闭。
http://+80/Temporary_Listen_Addresses/