我很肯定答案是「你不能這樣做」,但如果是這樣的話,ASP.NET MVC是非常有缺陷的。將請求傳回給ActionResult中的IIS
我有一個ActionResult需要提供一個靜態文件(文件名是在代碼中確定的)。出於性能原因(因爲我不想重新實現接受字節和緩存頭的HTTP規範),我想將請求交給IIS。像HttpModule中的context.RewritePath()一樣,當你給它一個靜態文件的名字。
除了需要在ActionResult內發生,不在PostAuthorizeRequest期間。看看FileStreamResult和FilePathResult類,很明顯它們只實現HTTP 200.TransferFile()很好,所有,但它不是內核緩存,它不處理Accept-bytes,If-Modified-自從,或Etags。
我們被告知,幾乎解碼有多好IIS是在提供文件服務,以及綜合管線是多麼的重要,在IIS6邪惡通配符映射是如何對性能等
現在我們回到同一條船 - 無法讓IIS從ActionResult提供靜態文件。 (NO,TransmitFile不計數)。
我甚至開始看到MS建議您將靜態內容放在單獨的服務器上。
請告訴我我錯了,有一個神奇的方法可以做到這一點。還是有集成管道夢被MVC殺死了?
你有沒有找到合適的解決方案來解決這個問題?我還試圖將我的actionresult傳遞迴IIS,以便它可以提供靜態文件。 –