为什么我看到“HTTP错误400.请求主机名无效。”连接到wcf服务时

时间:2014-06-16 12:07:26

标签: c# wcf wsdl

美好的一天,帮助我,请了解情况:

连接到wcf服务只能在本地获取

http://localhost:50233/Service1.svc?wsdl

当从LAN上的另一台机器测试化合物时,我看到错误400

http://computer:50233/Service1.svc?wsdl

我发现这可能是由MaxFieldLength引起的,因此我按照此处的建议编辑了注册表,但它不会改变结果。

C: \ Users \ user> ping computer

Pinging 192.168.0.11 with 32 bytes of data:

Reply from 192.168.0.11: bytes = 32 time <1ms TTL = 127

Reply from 192.168.0.11: bytes = 32 time <1ms TTL = 127

Reply from 192.168.0.11: bytes = 32 time <1ms TTL = 127

Reply from 192.168.0.11: bytes = 32 time <1ms TTL = 127

Ping statistics for 192.168.0.11:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 0ms, Maximum = 0ms, Average = 0ms

停止服务时,远程计算机上的错误将更改为

"Web page not available"

防火墙的规则允许端口50233上的所有传入连接。

连接到本地地址时

http://computer:50233/Service1.svc?wsdl

我看到同样的错误400。

删除或替换IP上的“localhost”时

<binding protocol="http" bindingInformation="*:50233:localhost" />

File \ My Documents \ IISExpress \ config \ applicationhost.config

连接无法使用。

当您添加另一个Binding

<Binding Protocol="http" bindingInformation="*:50233:localhost" />

<Binding Protocol="http" bindingInformation="*:50233:192.168.0.11" />
尝试开始发誓时的

服务程序“[9632] iisexpress.exe”

代码-1073741816(0xc0000008)失败'指定了无效的句柄'。

Windows 8,Visual Studio 2013,使用内置的IIS Express,两台计算机都在同一个域中。

1 个答案:

答案 0 :(得分:13)

命令执行(以管理员身份)

netsh http add urlacl url=http://computer:50233/ user=Everyone

帮助改变了503上的400错误

现在看看我的wsdl,我刚刚添加了一个参考

<Binding Protocol="http" bindingInformation="*:50233:computer" /> 
<Binding Protocol="http" bindingInformation="*:50233:192.168.0.11" /> 
<Binding Protocol="http" bindingInformation="*:50233:localhost" /> 

它开始工作了!

谢谢大家,这是一个很棒的地方