2010-03-14 43 views
2

我正在試圖通過使用代碼 不具有安全性和流式傳輸,像這樣的淨TCP端點時超時異常:NetTcpBinding的()與TransferMode.Streamed

NetTcpBinding binding = new NetTcpBinding(SecurityMode.None); 
binding.TransferMode = TransferMode.Streamed; 
binding.SendTimeout = TimeSpan.MaxValue; 

相同的代碼將工作,如果我只是省略SecurityMode.None或選擇SecurityMode.Transport,例外是超時太低,我厭倦了添加所有超時爲recive,發送,打開,關閉,並將它們都設置爲最大值,並沒有工作。

即時通訊使用的示例代碼: http://csharp-codesamples.com/2009/02/data-transfer-using-self-hosted-wcf-service/

任何explenation至於如何在這種情況下使用沒有安全將appriciated。

感謝, 圖騰

+0

您是否僅在您的客戶端設置了超時?也許你的服務器端運行到一個超時試圖把要傳回的字節... – 2010-03-14 16:29:59

+0

超時設置正確,與securitymode.none相同的設置,並切換到transportmode.bufferd工作。 – totem 2010-03-22 10:14:32

+0

你可以請你發佈異常的詳細信息(消息和堆棧跟蹤)嗎? – 2011-06-24 14:23:17

回答

0

有時WCF提供了錯誤的錯誤消息。

當您使用流式傳輸時,只有一些安全模式有效。當你不知道它有多長時間時,你不能簽署消息。

傳輸安全模式工作並且是默認的,因此它在沒有指定傳輸模式時工作。

http://msdn.microsoft.com/en-us/library/ms731316.aspx

+0

自從SecurityMode.None無法正常工作後,我不理解您的補救措施。如果你不能簽署郵件(我明白)爲什麼要設置沒有安全失敗,並設置傳輸安全工作。 – totem 2010-03-16 16:48:54