每次部署都必須重置 Http 處理程序。如何將此功能添加到 web.config
我的應用程序是 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 伺服器端后直接對其進行編輯。顯然,假設您在伺服器上具有寫權限。