我有一个非常奇怪的问题。我有一个使用ServiceStack的REST API,它可以执行一些保存支付数据等操作。在该API中,我开始构建支付对象,以便我可以向支付网关发起支付。此支付网关是使用SoapHttpClientProtocol的Soap API。
我遇到的问题是Soap API Times了。我有一个堆栈跟踪,让我相信它正在某个框架内发生。
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运行。因此,如果直接从用户界面调用它,我可以进行付款并获得成功的回复。当我从API执行它时它不起作用。
这可能是一个架构问题,它不允许来自另一个API的API调用吗?
之前有没有人遇到这样的事情?
任何帮助都会受到赞赏。
答案 0 :(得分:1)
发现问题。这是因为我的bin文件夹中有一个mono.security.dll。显然不需要这样就把它删除了。一旦我做到了,它就有用了。
归功于这篇文章:Mono Apache2 HttpWebRequest crashes with "The request timed out"