我已经挣扎了几天了这个问题 https://stackoverflow.com/questions/6186663/cant-send-wcf-service-request-as-soapxml,在这个过程中学到了很多关于绑定的东西。
不过,有一件事让我困惑:各种链接(参见this http://leowu70.blogspot.com/2010/09/wcf-error-request-failed-with-http.html or that http://www.codeproject.com/KB/WCF/HttpBinding.aspx例如)明确声明“默认情况下,WCF 项目是使用 WsHttpBinding 创建的”,但这不是我所看到的。
这就是我所做的:
- 打开 Visual Studio 2010 并选择“新建项目”/“Visual C#”/“WCF 服务应用程序”
- 不要触及代码中的任何内容,为服务设置本地 IIS Url(例如http://localhost/WcfService7 http://localhost/WcfService7)
- 打开soapUI并选择File / New Soap UI Project /输入新创建的wsdl的url:http://localhost/WcfService7/Service1.svc?wsdl http://localhost/WcfService7/Service1.svc?wsdl,不触及任何其他选项
- 接口属性:SOAP Version = SOAP 1.1,Binding = "BasicHttpBinding_IService1"(尽管它只是一个名称,但它是一个很好的提示)
- 打开 Altova XmlSpy 并选择 SOAP / 创建新的 SOAP 请求 / 输入 wsdl 的 url / 选择任何操作
- SOAP /更改 SOAP 请求参数/确保选中“作为 SOAP+XML (SOAP 1.2) 发送”
-
SOAP /向服务器发送请求:我收到错误
HTTP 错误:无法在服务器“localhost”上发布文件“/WcfService7/Service1.svc”(415)
将肥皂数据发送到‘时出错http://localhost/WcfService7/Service1.svc http://localhost/WcfService7/Service1.svc' HTTP 错误:无法在服务器“10.51.0.108”上发布文件“/WcfService7/Service1.svc”(415)
有什么解释吗?谢谢
当使用默认 .svc 文件(不更改其服务主机工厂)在 IIS 中托管 WCF 服务(使用 WCF 服务应用程序项目模板)时,默认绑定为basicHttpBinding
。如果您想将默认绑定更改为wsHttpBinding
你必须使用:
<protocolMapping>
<add scheme="http" binding="wsHttpBinding"/>
</protocolMapping>
在您的服务的配置文件中,但它不会解决您的问题,因为您不需要wsHttpBinding
我记得 Altova XmlSpy 无法发送有效的请求wsHttpBinding
因为它只支持基本的 SOAP 堆栈,不支持 WS-* 协议。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)