3

ASP.NET / C# 経由で Marketo SOAP Web サービスを呼び出そうとしています。Web サービス参照を正常に追加し、次のコード行でそれを呼び出そうとしました:

SuccessGetLead lead = service.getLead(paramsgetlead);

問題は、私もこの例外を受け取ることです:

[WebException: サーバーがプロトコル違反を犯しました。Section=ResponseStatusLine]

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[] 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(オブジェクト送信者、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

解決しました。問題は、(Marketo が提供する) wsdl が Web サービス エンドポイントとして誤って localhost を指していたことです。WebServiceObject.Url プロパティを介してプログラムで URL を設定すると、現在は機能します。

于 2010-11-26T23:45:20.073 に答える
3

Just try to use HTTP/1.0 instead of HTTP/1.1

look at the following code

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

It worked for me ;-)

于 2012-01-24T23:08:45.167 に答える