我目前支持構建過程,並且需要在iis6網站上設置Wilcard應用程序映射。以編程方式設置IIS6通配符應用程序映射
我目前使用SDC任務的混合物和MSBuild擴展包來做各種事情,但是當嘗試使用這兩個框架設置通配符應用程序映射時,我遇到了一堵磚牆。
也許我錯過了它的文檔,但我想知道是否有人知道如何設置這些。
需要明確的是在這裏你會在GUI設置這些:
我打開這個設置包括也許寫一些代碼的替代方法,如果neccessary :)做
我目前支持構建過程,並且需要在iis6網站上設置Wilcard應用程序映射。以編程方式設置IIS6通配符應用程序映射
我目前使用SDC任務的混合物和MSBuild擴展包來做各種事情,但是當嘗試使用這兩個框架設置通配符應用程序映射時,我遇到了一堵磚牆。
也許我錯過了它的文檔,但我想知道是否有人知道如何設置這些。
需要明確的是在這裏你會在GUI設置這些:
我打開這個設置包括也許寫一些代碼的替代方法,如果neccessary :)做
如果使用維克斯,您可以通過使用WixIISExtensions添加這些:
<iis:WebApplicationExtension CheckPath="no"
Script="yes"
Executable="[FRAMEWORKROOT]v2.0.50727\aspnet_isapi.dll"
Verbs="GET,HEAD,POST"/>
此外,如建議這post,嘗試:
String strPath = "IIS://localhost/W3SVC/1/Root";
DirectoryEntry IISEntry = new DirectoryEntry(strPath);
PropertyValueCollection applicationMappings = IISEntry.Properties["ScriptMaps"];
applicationMappings.Add(@",%Windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,4,All");
IISEntry.CommitChanges();
使用MSBuild擴展包,你可以這樣做:
<MSBuild.ExtensionPack.Web.Iis6VirtualDirectory TaskAction="Create" Website="site" Name="vdir" Properties="ScriptMaps=*,$(MSBuildToolsPath)\aspnet_isapi.dll,1,All"/>
這將替換所有腳本映射,而不是增加一個。
不幸的是,wix並沒有幫助我,雖然這正是我想要達到的目標,但我注意到MSBuildExtensionPack確實在其創建任務下有一個ScriptMaps部分,不幸的是我使用SDC任務來創建站點,可能不得不遷移到擴展方法,由於其在腳本中的格式不太可維護,除非任何人知道sdc方法,另一個可能的答案是使用Powershell –
之類的東西編寫腳本我認爲Powershell可以幫助您在IIS7中:http ://learn.iis.net/page.aspx/437/powershell-snap-in-advanced-configuration-tasks/。也許在IIS6中但不確定。否則,可能使用c#代碼創建自己的MSBuild擴展任務。 – Mrchief
另外,你看看Iis6ServiceExtensionFile類:http://www.msbuildextensionpack.com/help/4.0.3.0/index.html – Mrchief