读书人

wcf公布的web service无法访问

发布时间: 2011-12-23 23:32:01 作者: rapoo

wcf发布的web service无法访问?
我用wcf发布成的 webservice在本机通过增加web引用用此地址http://192.168.31.82:8080/WebService,能访问,
在别人机器上通过wcf的方式也能访问,就是通过web 引用的方式不行
但在别人机器上访问时出现下面的错误:

- 来自“http://192.168.31.82:8080/WebService”的报告是“无法识别此文档格式(内容类型为“text/html; charset=
“DISCO 文档”的报告是“下载“http://localhost:8080/WebService.asmx?disco”时出错。”。

这是我的配制信息:
<system.serviceModel>
<services>
<service name="Infrastructure.WCF.ServerProxy" behaviorConfiguration="MyServiceTypeBehaviors">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/WebService"/>
</baseAddresses>
</host>

<endpoint
name ="basicHttpEndPoint"
address=""
contract="Infrastructure.WCF.IServerProxy"
binding="basicHttpBinding"
/>

<endpoint
name="TcpEndPoint"
address="net.tcp://localhost:8085/Remoting/"
binding="netTcpBinding"
bindingConfiguration=""
contract="Infrastructure.WCF.IServerProxy" />

</service>
</services>

<behaviors>
<serviceBehaviors>
<behavior name="MyServiceTypeBehaviors" >
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="False"/>
</behavior>
</serviceBehaviors>
</behaviors>

</system.serviceModel>


[解决办法]
“wcf发布成的 webservice”----什么意思?wcf与webservice是不同的两种事物。你是不是说用了wcf的httpbinding模式?这要在client端通过“添加服务引用”才能用,添加web服务虽然添加是成功地,但是是无法使用的。
[解决办法]
wsHttpEndPoint

如果你需要早先版本的vs支持的ws客户端访问,使用wsHttpBinding。


[解决办法]
basicHttpBinding

如果你需要早先版本的vs支持的ws客户端访问,使用wsHttpBinding。
[解决办法]
添加

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"
listenUriMode="Explicit" />


然后在添加这个
<serviceBehaviors>
<behavior name="Service.ECCSReadServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
才可以看到元数据


对于WebService ,只有BasicHttpBinding 才有效,其他都会不支持的

读书人网 >.NET Framework

热点推荐