【发布时间】:2014-11-17 19:39:51
【问题描述】:
我创建了一个 Web 服务和一个 ConsoleApplication 来使用它。我正在使用提琴手来查看流量,我希望请求和响应是 SOAP,但这并没有发生,只有请求是 SOAP,而不是响应。
如何强制使用肥皂响应我的服务?
这是获得的原始 http 标头:
HTTP/1.1 200 OK
缓存控制:私有,max-age=0
内容类型:文本/xml;字符集=utf-8
内容编码:gzip
变化:接受编码
服务器:Microsoft-IIS/7.5
X-AspNet-版本:4.0.30319
X-Powered-By:ASP.NET
日期:2014 年 11 月 17 日星期一 20:19:22 GMT
内容长度:311
响应是二进制的。
我的 web-service 是在 ASP.NET Empty Web Application 项目中添加一个 Web Services 项创建的,我没有修改,后来我在 IIS 中发布。
我的消费者也很简单。我只是添加服务引用并创建一个实例。
var binding = new BasicHttpBinding();
var endpointAddress = new EndpointAddress("http://172.20.48.59/web-services/MyWebService.asmx");
var serviceRefWithoutConfig = new ServiceReference1.MyWebServiceSoapClient(binding, endpointAddress);
Console.WriteLine(serviceRefWithoutConfig.HelloWorld());
【问题讨论】:
-
响应格式是什么?
-
但我的消费者应用程序显示正确答案
-
Fiddler 没有隐藏 SOAP 吗?例如,WireShark 会显示什么作为响应?
-
服务是你写的吗?然后向我们展示 service 中的(基本)代码。 service 决定 service 如何响应。
-
还有,你怎么知道它没有返回 SOAP?您是否希望您的 Console.WriteLine 输出 XML?这不是它的工作原理。
标签: c# .net web-services soap fiddler