我有一个非常奇怪的问题。我有一个使用 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 的架构问题吗?
有没有人遇到过这样的事情?
任何帮助将不胜感激。