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

3

我正在尝试通过ASP.NET/C#调用Marketo SOAP Webservice。

我已经成功添加了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) in c:\Users\hubert.grininger\AppData\Local\Temp\Temporary ASP.NET Files\dynaweb2007\82e21235\d41bf12a\App_WebReferences.liqikruc.7.cs:206 _test_marketo.Page_Load(Object sender, EventArgs e) in d:\workspace_c\dynaweb2007_test\marketo.aspx.cs: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个回答

4

问题已解决。问题在于由Marketo提供的wsdl错误地将本地主机作为Web服务端点指向。

我通过WebServiceObject.Url属性以编程方式设置了URL,现在它可以正常工作。


3

尝试使用HTTP/1.0代替HTTP/1.1。

看下面的代码:

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

对我很有用 ;-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接