1

私は非常に奇妙な問題を抱えています。支払いデータの保存などのいくつかのことを行う ServiceStack を使用する REST API があります。その API 内から支払いオブジェクトの構築を開始し、支払いゲートウェイへの支払いを開始できます。この支払いゲートウェイは、SoapHttpClientProtocol を使用した Soap API です。

私が抱えている問題は、Soap API がタイムアウトすることです。フレームワークのどこかで起こっていると思わせるスタック トレースがあります。

System.Net.WebException: Error: ConnectFailure (Connection timed out) ---> System.Net.Sockets.SocketException: Connection timed out
  at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00000] in <filename unknown>:0 
  at System.Net.WebConnection.Connect (System.Net.HttpWebRequest request) [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at System.Net.HttpWebRequest.EndGetRequestStream (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0 
  at System.Net.HttpWebRequest.GetRequestStream () [0x00000] in <filename unknown>:0 
  at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (System.String method_name, System.Object[] parameters) [0x00000] in <filename unknown>:0 

上記は私が得た例外なので、Invoke メソッド内で発生していると思います。これがプロキシファイルにあるコードです。

[System.Web.Services.Protocols.SoapDocumentMethodAttribute("paymenturl", RequestNamespace="gatewayurl", ResponseNamespace="gatewayurl", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
public string SubmitPayment(string trnXML) {
    object[] results = this.Invoke("SubmitPayment", new object[] {
                    trnXML});
    return ((string)(results[0]));
}

なぜこれが起こるのか誰にも分かりますか?

SOAP Payment API が UI を介して機能するようになりました。したがって、UI から直接呼び出すと、支払いを行い、成功した応答を返すことができます。APIから実行すると機能しません。

これはおそらく、別の API 内からの API 呼び出しを許可しないアーキテクチャ上の問題ですか?

誰かが前にこのようなものに出くわしたことがありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

1

問題が見つかりました。私のbinフォルダにmono.security.dllがあったからです。これは明らかに必要ないので削除しました。私がそれをしたら、それはうまくいきました。

クレジットはこの投稿に送られます: Mono Apache2 HttpWebRequest crashes with "The request timed out"

于 2013-08-29T00:29:03.370 に答える