2013-03-15 38 views
1

我有一些調用soap服務的代碼。
它在我的第一臺Linux機器上正常工作。
但是,當我在另一臺機器上運行它時,出現下面的錯誤。
谷歌似乎表明它可能來自證書,但我不確定這一點,因爲我通過ServicePointManager.ServerCertificateValidationCallback = Validator; 覆蓋證書方法,其中Validator是一個返回true的函數。Mono C#可以在一臺Linux機器上正常工作,但不會在另一臺機器上工作!也許與證書有關?

任何想法?

Unhandled Exception: System.Net.WebException: Error getting response stream (ReadDone1): ReceiveFailure ---> System.IO.IOException: EndRead failure ---> System.Net.Sockets.SocketException: Connection reset by peer 
    at System.Net.Sockets.Socket.EndReceive (IAsyncResult result) [0x00000] in <filename unknown>:0 
    at System.Net.Sockets.NetworkStream.EndRead (IAsyncResult ar) [0x00000] in <filename unknown>:0 
    --- End of inner exception stack trace --- 
    at System.Net.Sockets.NetworkStream.EndRead (IAsyncResult ar) [0x00000] in <filename unknown>:0 
    at Mono.Security.Protocol.Tls.SslStreamBase.InternalReadCallback (IAsyncResult result) [0x00000] in <filename unknown>:0 
    --- End of inner exception stack trace --- 
    at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0 
    at System.Net.HttpWebRequest.GetResponse() [0x00000] in <filename unknown>:0 
    at CRMOnlineSOAPRequests.CRMHelper.GetSOAPResponse (System.String url, System.String soapEnvelope) [0x00000] in <filename unknown>:0 
    at CRMOnlineSOAPRequests.CRMHelper.createEntity (System.String[] keyValuesOneDimensionalArray) [0x00000] in <filename unknown>:0 
    at CRMCreateEntity.Program.Main (System.String[] keyValuesOneDimensionalArray) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.Net.WebException: Error getting response stream (ReadDone1): ReceiveFailure ---> System.IO.IOException: EndRead failure ---> System.Net.Sockets.SocketException: Connection reset by peer 
    at System.Net.Sockets.Socket.EndReceive (IAsyncResult result) [0x00000] in <filename unknown>:0 
    at System.Net.Sockets.NetworkStream.EndRead (IAsyncResult ar) [0x00000] in <filename unknown>:0 
    --- End of inner exception stack trace --- 
    at System.Net.Sockets.NetworkStream.EndRead (IAsyncResult ar) [0x00000] in <filename unknown>:0 
    at Mono.Security.Protocol.Tls.SslStreamBase.InternalReadCallback (IAsyncResult result) [0x00000] in <filename unknown>:0 
    --- End of inner exception stack trace --- 
    at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0 
    at System.Net.HttpWebRequest.GetResponse() [0x00000] in <filename unknown>:0 
    at CRMOnlineSOAPRequests.CRMHelper.GetSOAPResponse (System.String url, System.String soapEnvelope) [0x00000] in <filename unknown>:0 
    at CRMOnlineSOAPRequests.CRMHelper.createEntity (System.String[] keyValuesOneDimensionalArray) [0x00000] in <filename unknown>:0 
    at CRMCreateEntity.Program.Main (System.String[] keyValuesOneDimensionalArray) [0x00000] in <filename unknown>:0 
+0

異常消息是「連接重置對等」,是否會有一個網關/路由器不喜歡你? – sisve 2013-03-15 11:22:09

+0

你有沒有找到解決這個問題的方法?我們有完全相同的問題。 – Pete 2014-04-08 13:09:12

回答

0

我們有一個問題,在我們公司的證書,另一家公司想讓我們用的是在網上生成的證書,所以不是「正式」的證書。我們不想將該證書包含在我們的可信列表中,因爲其他公司也可能會使用它。爲此,我們用下面的代碼,暫時接受所有證書,然後我們重置證書處理:

System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => 
{ 
    //Whatever the certificate, accept it. 
    return true; 
}; 

//Do your request 

//Reset handling to normal. 
System.Net.ServicePointManager.ServerCertificateValidationCallback = null; 

請方面,這是.NET不是單聲道,所以我不知道這是否會工作。

+0

我已經這樣做了,所以我很困惑:) – 2013-03-15 11:30:48

+0

@AbooSoyeed奇怪,但它只有1個工作原理奇怪,或只有1個電腦的腳本工作?您試圖在防火牆後面連接的服務器,並且該防火牆只接受某些ips? – SynerCoder 2013-03-15 11:47:33

+0

我試圖連接到微軟的動態,所以我懷疑它,我不必爲其他服務器設置任何設置(實際上有兩個服務器,這與它合作,而一個它不) – 2013-03-15 12:49:00

相關問題