私は非常に奇妙な問題を抱えています。支払いデータの保存などのいくつかのことを行う 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 呼び出しを許可しないアーキテクチャ上の問題ですか?
誰かが前にこのようなものに出くわしたことがありますか?
どんな助けでも大歓迎です。