Iis-7

每次部署都必須重置 Http 處理程序。如何將此功能添加到 web.config

  • May 12, 2010

我的應用程序是 dotnet 4 混合體 - 在某些領域是 MVC,在其他領域是 Web 表單。此應用程序最近升級到 dotnet 4,包含許多舊程式碼和一些不匹配的部分。不幸的是,它包含一個 Telerik 組件,需要我以經典模式執行應用程序池。

為了解決這個問題(在 IIS7 中),我必須向 IIS 配置添加一個處理程序映射。此映射基本上是萬用字元映射,它將萬用字元路徑“*”指向 %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll。

我遇到的問題是:由於某種原因,此映射在部署站點時被刪除。那麼,我可以將此映射的功能添加到 Web 配置中嗎?如果是這樣,如何?

或者是否有另一種解決方案可以使手動添加的映射“具有粘性”,以便在部署期間和部署後保持原位?(我也在 StackOverflow 上問這個問題,因為我不確定這應該是編碼問題還是伺服器問題)

好吧,我知道發生了什麼;當您編輯處理程序映射並為單個站點添加自定義映射時,它實際上通過將“處理程序”元素添加到 system.webServer 部分(如果它尚不存在)來編輯 Web 配置,並在其中添加萬用字元列表在我的情況下是這樣的:

<system.webServer>
   <handlers>
       <add name="Wildcard" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
   </handlers>
</system.webServer>

所以我複制了這些行並將它們放在我的 web.config 中,用於我要部署到的環境(在這種情況下是 beta 版——但我需要為生產做同樣的事情)和 viola,設置現在就位部署時。發生的事情是這些設置在每次部署期間都失去了,因為(顯然)web.config 被覆蓋了。

感謝 squillman 試圖在這方面幫助我;儘管我自己想通了!

這對您的部署問題沒有幫助(我將不得不研究該部分),但您始終可以在部署 web.config 伺服器端后直接對其進行編輯。顯然,假設您在伺服器上具有寫權限。

引用自:https://serverfault.com/questions/141160