請求我的CSS提供靜態文件,JS,圖像文件正在通過ASP.NET管道服務。我認爲默認情況下IIS會避免這種情況,但是我看到了我的Application_AuthenticateRequest
斷點上的請求,並且沒有必要實際驗證這些請求。我看到了衝突的方法來改變這種行爲 - 做到這一點的最好方法是什麼?防止IIS通過ASP.NET管道
回答
我在這裏採取了猜測和懷疑,你已經在你的web.config
文件中配置以下設置:
<modules runAllManagedModulesForAllRequests="true">
這意味着每一項要求,其中包括靜態內容的擊球管道。
更改此設置:
<modules runAllManagedModulesForAllRequests="false">
這是假設你的應用程序是ASP.NET 4.0和MVC3下運行。
對於這個工作,你需要安裝KB980368(需要重新啓動)或Windows 2008 R2 SP1(其中包括此修復程序)。這樣做的原因是這個優秀的文章中解釋:
How ASP.NET MVC Routing Works and its Impact on the Performance of Static Requests
某處或者您的IIS配置,或web.config中,你有一個處理程序映射設置爲這些文件映射到你的ASP.Net應用程序。
嘗試刪除你的web.config,看看您是否仍然可以從IIS中瀏覽到這些文件類型不ASP.Net。如果失敗,你會知道它是你的web.config - 否則你將不得不檢查IIS設置。
第2步 - 將web.configs回來,然後刪除並重新創建網站 - 同樣的問題?這是IIS根目錄中的設置,意味着它適用於所有站點 - 請在此處檢查處理程序映射。
我最終加入這我的web.config。我知道我的所有靜態文件都存在於這些文件夾中,所以它可以滿足我的需求。
<location path="scripts">
<system.web>
<authentication mode="None" />
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="styles">
<system.web>
<authentication mode="None" />
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="images">
<system.web>
<authentication mode="None" />
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
「路徑」屬性允許多個值?根據以下鏈接他們不是:http:// stackoverflow。com/questions/4608764 /指定多於一個目錄在web-configs-location-path-element – UserControl 2012-02-06 12:05:41
這太糟糕了。 – 2012-02-12 01:43:21
這只是防止身份驗證,但靜態文件請求仍然擊中您的託管模塊。 @Kev有正確的答案。 – vtortola 2012-02-13 16:48:21
在啓用Visual Studio Development Server的VS2012/MVC3中,RAMMFAR = false不起作用。每個對靜態文件的請求仍然會觸發Application_BeginRequest事件處理程序。
我切換到IIS Express和看到所需的功能。
- 1. IIS,Asp.NET管道和併發
- 2. 允許IIS 7.5通過ASP.NET管道提供靜態文件
- 3. 防止IIS卸載ASP.Net站點
- 4. IIS 7/ASP.Net管道如何工作?
- 5. Asp.Net IIS託管
- 6. 如何通過IIS中的代理來防止跨域問題?
- 7. 如何防止通過MooTools
- 8. IIS託管,asp.net mvc
- 9. asp.net託管與iis
- 10. 通過sed管道故障
- 11. 通過管道傳輸
- 12. 通過管道在C
- 13. 可以通過raspistill管道
- 14. 通過命名管道
- 15. 通過管道/ DUP2用C
- 16. 通過管道序列化
- 17. 的Python subprocess.Popen通過管道
- 18. IIS管道回傳檢測
- 19. 如何通過知道管理頁面url來防止管理頁面的訪問?
- 20. 通過Delphi代碼管理IIS
- 21. 親子通信通過管道在C
- 22. 通過管道與PuTTY通信
- 23. 通過管道親子進程通信
- 24. 捲曲通過NSTask不會終止,如果管道出現
- 25. asp.Net防止用JavaScript
- 26. ASP.NET防止雙擊
- 27. 無法通過ASP.NET管道傳遞靜態文件
- 28. 如何防止在ASP.NET/IIS環境中直接調用URL?
- 29. 防止IIS重用工作進程單獨ASP.Net的AppDomains
- 30. Logstash管道中止
這個工程,但我真的不想改變那個設置,因爲它影響其他的東西。希望替代 – kenwarner 2012-02-07 01:01:50
@qntmfred - 哦,再次你好:)。任何機會,你可以更新你的問題,並解釋你的意思*,「因爲它影響其他的東西。」*? – Kev 2012-02-07 01:07:03
當然,但我必須記住它是什麼第一個>。< – kenwarner 2012-02-07 01:44:30