簡體   English   中英

如何從IIS7和ASP.NET 4.0中的HTTP處理程序調用靜態文件處理程序?

[英]How to call static file handler from HTTP handler in IIS7 and ASP.NET 4.0?

我為自動生成文件創建自定義HTTP處理程序,我想告訴IIS7像普通靜態文件一樣提供當前請求,因為我需要使用IIS和web.config文件來控制壓縮設置和當前請求文件的任何其他HTTP頭。

我知道。 在ASP.net中有一個名為[StaticFileHandler] [1]的內部類。 但我無法訪問它。 或者你有任何其他方式可以像這樣工作。 [1]: http//msdn.microsoft.com/en-us/library/ms404287.aspx

復制StaticFileHandler應該很容易

  1. 下載反射器
  2. 打開System.Web
  3. 搜索StaticFileHandler
  4. Open方法ProcessRequestInternal()
  5. 打開方法SendFile()

復制你需要的位,基本上歸結為這個方法:

context.Response.TransmitFile(physicalPath, offset, length);

此博客文章描述了何時使用StaticFileHandler:

如果您尚未修改任何標頭 (例如緩存)並且尚未向響應流寫入內容,並且響應流沒有過濾器 (例如壓縮)並且您正在進行運行IIS6然后將請求傳遞回IIS進行處理。

據我所測試,這對IIS7也是如此。 我不確定如何,但如果你不在自己的處理程序中處理某個請求,它應該傳遞給IIS。 任何人都可以確認嗎?

至少,遵循以上提示適用於我的靜態文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM