C# SOAP Web 服务 服务器违反了协议。 Section=ResponseStatusLine

Posted

技术标签:

【中文标题】C# SOAP Web 服务 服务器违反了协议。 Section=ResponseStatusLine【英文标题】:C# SOAP Web Service The server committed a protocol violation. Section=ResponseStatusLine 【发布时间】:2012-10-16 22:18:57 【问题描述】:

我有一个调用 Web 服务的应用程序...我收到一个错误,我正在拔掉我头上剩下的几根头发,也许有人可以帮忙。

代码如下:

Service_RetrieveIntervalDataserviceagent srv = new Service_RetrieveIntervalDataserviceagent();
srv.Credentials = new NetworkCredential(UserName, Password, Domain);
MDMIntervalDataInput dataInput = new MDMIntervalDataInput();
 string Url = srv.Url;
DeviceList deviceList = new DeviceList();

deviceList.Type = DeviceListType.M;
deviceList.DeviceId = "2862,2876,2877".Split(',');

//Setup dataInput
dataInput.ApplicationName = "TestApp";
dataInput.StartDate = DateTime.Now.AddDays(-3).ToString("MM/dd/yyyy");
dataInput.EndDate = DateTime.Now.AddDays(-3).ToString("MM/dd/yyyy");
dataInput.OutputMode = MDMIntervalDataInputOutputMode.Wire;
dataInput.DeviceList = deviceList;
srv.RetrieveIntervalData_V10(dataInput);

我不断收到错误:

服务器违反了协议。 Section=ResponseStatusLine

我确实注意到 URL 从 HTTPS 更改为 HTTP 这可能是问题吗?

我也尝试将以下内容添加到我的配置文件中,但它仍然不起作用:

<system.net> 
  <settings> 
    <httpWebRequest useUnsafeHeaderParsing="true" /> 
  </settings> 
</system.net> 

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

这是我修复它的方法...

我注意到 URL 正在从 HTTPS 更改为 HTTP...HTTP URL 是罪魁祸首,因此我将其更新为手动设置 URL,并且它起作用了。

【讨论】:

以上是关于C# SOAP Web 服务 服务器违反了协议。 Section=ResponseStatusLine的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中更改soap xml Web 服务?

Web服务(Web Service)相关概念

在 PHP 中使用 SOAP 协议调用 Web服务(WebService)

ASP.NET与SOAP协议使用记录

Windows Azure Web 角色 useUnsafeHeaderParsing="true" 无法正常工作,得到“服务器违反协议。Section=ResponseStatu

ASP.NET与SOAP协议使用记录