我和this problem一直在苦苦挣扎几天,在这个过程中学习很多关于绑定的东西。 但有一件事让我感到困惑:各种链接(例如,见this或that)明确声明“默认情况下,WCF项目是使用WsHttpBinding创建的”,但这不是我所看到的。 这就是我的工作:
SOAP /向服务器发送请求:我收到错误
HTTP错误:无法在服务器'localhost'上发布文件'/WcfService7/Service1.svc'(415)
将soap数据发送到'http://localhost/WcfService7/Service1.svc时发生错误HTTP错误:无法在服务器'10 .51.0.108上发布文件'/WcfService7/Service1.svc'(415)
有任何解释吗?感谢
答案 0 :(得分:11)
在IIS(使用WCF服务应用程序项目模板)中使用默认.svc文件(不更改其服务主机工厂)托管WCF服务时,默认绑定为basicHttpBinding
。如果要将默认绑定更改为wsHttpBinding
,则必须使用:
<protocolMapping>
<add scheme="http" binding="wsHttpBinding"/>
</protocolMapping>
在您的服务的配置文件中,但它不能解决您的问题,因为您不需要wsHttpBinding
并且我记得Altova XmlSpy无法发送wsHttpBinding
的有效请求,因为它仅支持基本没有WS- *协议的SOAP堆栈。
答案 1 :(得分:2)
默认是使用SOAP 1.1进行basichttpbinding。
这就是为什么在将其作为SOAP 1.2发送时会出错。