超时异常:从REST API内调用Soap API

本文关键字:API Soap 调用 REST 异常 超时 | 更新日期: 2023-09-27 18:29:26

我有一个非常奇怪的问题。我有一个REST API,它使用ServiceStack来做一些事情,比如保存支付数据等。从API中,我开始构建支付对象,这样我就可以向支付网关发起支付。此支付网关是使用SoapHttpClientProtocol的Soapneneneba API。

我遇到的问题是肥皂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支付API通过UI工作。因此,如果直接从UI调用它,我可以进行付款并获得成功的回复。当我从API中执行时,它不起作用。

这可能是一个不允许从另一个API内部调用API的体系结构问题吗?

以前有人遇到过这样的事情吗?

任何帮助都将不胜感激。

超时异常:从REST API内调用Soap API

发现问题。这是因为我的bin文件夹中有一个mono.security.dll。这显然是不需要的,所以删除了它。一旦我做到了,它就起作用了。

值得一提的是:Mono Apache2 HttpWebRequest与";请求超时";