3

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

SuccessGetLead lead = service.getLead(paramsgetlead);

问题是我也得到了这个异常:

[WebException:服务器违反了协议。部分=响应状态线]

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

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

System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] 参数) +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

_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,对象 o,对象 t,EventArgs e)+14

System.Web.Util.CalliEventHandlerDelegateProxy.Callback(对象发送者,EventArgs e)+35

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

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

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

我也尝试添加

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

但这也无济于事。

我认为该请求从未发送到Marketo,但错误已经发生在我身上。

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

4

2 回答 2

4

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

于 2010-11-26T23:45:20.073 回答
3

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

看下面的代码

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

它对我有用;-)

于 2012-01-24T23:08:45.167 回答