WebException:服务器提交了协议违规。 Section = ResponseStatusLine(调用Marketo SOAP API)

时间:2010-11-25 16:24:09

标签: c# asp.net webservice-client

我正在尝试调用Marketo SOAP Web服务 通过ASP.NET / C#。 我成功添加了Web服务引用,并试图用这行代码调用它:

SuccessGetLead lead = service.getLead(paramsgetlead);

问题是我也遇到了这个例外:

  

[WebException:服务器提交了协议违规。 Section = ResponseStatusLine]

     

System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)+263

     

System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)+4

     

System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName,Object [] parameters)+172

     

com.marketo.soap.MktMktowsApiService.getLead(ParamsGetLead paramsGetLead)位于c:\ Users \ hubert.grininger \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ dynaweb2007 \ 82e21235 \ d41bf12a \ App_WebReferences.liqikruc.7。 CS:206

     d:\ workspace_c \ dynaweb2007_test \ marketo.aspx.cs中的

_test_marketo.Page_Load(Object sender,EventArgs e):48

     

System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e)+14

     

System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e)+35

     

System.Web.UI.Control.OnLoad(EventArgs e)+99

     

System.Web.UI.Control.LoadRecursive()+50

     

System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+627

我也尝试添加

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

但这也没有帮助。

我认为请求永远不会发送到 Marketo ,但错误已经发生在我的最后。

感谢您提供任何帮助或提示。

2 个答案:

答案 0 :(得分:4)

解决。问题是wsdl(由Marketo提供)错误地将localhost指向webservice端点。 我通过WebServiceObject.Url属性以编程方式设置URL,现在可以正常工作。

答案 1 :(得分:3)

尝试使用HTTP / 1.0而不是HTTP / 1.1

查看以下代码

objWebRequest.ProtocolVersion = System.Net.HttpVersion.Version10;

它对我有用; - )