我使用HttpWebRequest上傳文件到一個ASP.Net MVC應用程序,但由於某種原因我未知,它無法持續上傳。爲什麼ASP.Net MVC中的文件上傳失敗?
我知道這個文件很好,因爲如果你嘗試了足夠多的時間,它最終會上傳並可以在服務器上查看。當它失敗時,服務器和客戶端都不會報告與上傳直接相關的任何錯誤,上傳只是在隨機位置和時間中途停止,並且我的MVC操作方法被調用而不加載文件(Request.Files.Count == 0
)。
這似乎只是我們的生產環境中DSL的一個問題。測試和開發環境正常工作,生產環境在辦公室(服務器的真正快速連接)中工作正常,但在家中通過DSL運行時失敗。
正如你在下面看到的,它失敗的地方很基本。
[Authorize]
[AcceptVerbs(HttpVerbs.Put | HttpVerbs.Post)]
[ValidateInput(false)]
public int UploadScene(int sceneID, int tourID, string name, int number, PhotoType photoType)
{
SceneInfo scene;
if (Request.Files.Count < 1) throw new InvalidOperationException("Image file not uploaded.");
// process file...
}
看來,這可能是配置,但我不能確定它可能是什麼。我們在集羣中運行(我們有4個Web服務器),所以它可能與此有關,但是我正在測試一臺服務器(我可以通過名稱來隔離計算機,並且可以驗證它是否正在處理我的請求)。我也確定它運行在它自己的應用程序池中。我還應該檢查什麼?
我們在服務器上使用IIS6和.Net 3.5。
該文件有多大?您可能會遇到一些腳本超時。 – 2010-02-02 18:30:34
我不認爲這是一個腳本超時,因爲它有時會在幾秒鐘內失敗。我還將服務器上的超時設置爲1小時,將客戶端上的超時設置爲20分鐘。 –
Brian
2010-02-02 18:45:11
你看過IIS日誌嗎? – stej 2010-02-02 18:56:34