2012-02-15 65 views
0

我們正在開發通過互聯網上傳大文件的應用程序。 DotNetZip壓縮前的文件大小約爲18GB,壓縮後大約爲4GB。文件通過安全的ftp從客戶端機器傳輸到目標服務器,沒有任何問題。.NET Web服務超時在Internet服務器機

然後客戶端調用目標服務器主機託管的.net Web服務將文件從ftp root複製到存儲目錄,計算文件哈希,然後調用DotNetZip來解壓縮文件。

當客戶機和承載Web服務的目標服務器都在Intranet中時,Web服務可以很好地工作。

但是,在複製,散列和解壓縮4GB文件時,如果使用同一臺客戶機,但是另一臺在Internet上託管Web服務的生產目標服務器,則Web服務的「線程正在中止異常」。

這兩臺服務器機器都是帶有SP2的Windows 2003服務器,安裝了相同的組件,具有相同的IIS ver6.0,並且配置相同以使用ASP .Net 2.0。我們將web.config,machine.config,MetaBase.xml從Intranet服務器機器複製到Internet服務器機器。

我們改變: 1.客戶端代碼:在代碼中的Web服務代理超時7200000 2.服務器機器web.config文件: (1)。 (2)。 3.服務器machine.config文件: (1)。 4.服務器機器MetaBase.xml: (1)。 ASPMaxRequestEntityAllowed把= 「1073741824」 5.在IIS ver6,網站 - >服務標籤 - >隔離模式 「在IIS 5.0隔離模式運行WWW服務」 被選中。

我們當前對Internet上服務器機器上的問題的理解是,即使線程繼續完成複製文件,.Net recycl工作進程仍處於默認超時值狀態,導致「線程中止」異常。

如果我們的理解是正確的,那麼爲什麼同一個超時配置在Intranet上的服務器上工作?我們如何在Internet上的生產服務器上進行超時配置工作?

+2

文本蝙蝠俠的聖牆! – 2012-02-15 19:24:52

回答

0

我迷路了。你有2臺服務器。一個有一個Web服務,它解壓縮一個非常大的文件並將其複製到另一個服務器。

某處一路上超時。這是對的嗎?

如果這是真的,那麼我會看看網絡利用率,而文件複製正在進行。我的猜測是該文件需要花費大量的時間在機器之間進行傳輸。

你提到一個服務器在防火牆內,另一個是在它之外。這兩臺服務器之間的連接速度有多快?如果它只有10Mb,那麼你會被嚴重洗滌。

+0

感謝您的回覆。讓我澄清一下配置。它有3臺機器參與其中。 – 2012-02-16 17:11:14

+0

謝謝你的迴應。我有服務器A主機Web服務,服務器B存儲文件。 A和B在Internet上位於同一網絡上。在我選中「在IIS 5.0中以隔離模式運行WWW」之後,使用應用程序池,我沒有問題在服務器A上覆制,散列,解壓縮4GB文件。但是我仍然得到了「線程被中止異常」 /哈希/解壓文件從A到B.爲什麼我的超時配置在使用服務器B時不起作用? – 2012-02-16 19:30:40