2013-08-28 32 views
1

我有一個很奇怪的問題。我有一個使用ServiceStack的REST API,它執行一些操作,比如保存付款數據等。在該API中,我開始構建付款對象,以便我可以向支付網關發送付款。該支付網關是使用SoapHttpClientProtocol的Soap API。超時異常:從REST API中調用Soap API

我遇到的問題是Soap API Times out。我有一個堆棧跟蹤,導致我相信它發生在框架內某處。

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調用?

有沒有人遇到過這樣的事情?

任何幫助將不勝感激。

回答