2011-07-14 63 views
3

我目前支持構建過程,並且需要在iis6網站上設置Wilcard應用程序映射。以編程方式設置IIS6通配符應用程序映射

我目前使用SDC任務的混合物和MSBuild擴展包來做各種事情,但是當嘗試使用這兩個框架設置通配符應用程序映射時,我遇到了一堵磚牆。

也許我錯過了它的文檔,但我想知道是否有人知道如何設置這些。

需要明確的是在這裏你會在GUI設置這些:

我打開這個設置包括也許寫一些代碼的替代方法,如果neccessary :)做

ApplicationMaps

回答

3

如果使用維克斯,您可以通過使用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(); 
+0

不幸的是,wix並沒有幫助我,雖然這正是我想要達到的目標,但我注意到MSBuildExtensionPack確實在其創建任務下有一個ScriptMaps部分,不幸的是我使用SDC任務來創建站點,可能不得不遷移到擴展方法,由於其在腳本中的格式不太可維護,除非任何人知道sdc方法,另一個可能的答案是使用Powershell –

+1

之類的東西編寫腳本我認爲Powershell可以幫助您在IIS7中:http ://learn.iis.net/page.aspx/437/powershell-snap-in-advanced-configuration-tasks/。也許在IIS6中但不確定。否則,可能使用c#代碼創建自己的MSBuild擴展任務。 – Mrchief

+1

另外,你看看Iis6ServiceExtensionFile類:http://www.msbuildextensionpack.com/help/4.0.3.0/index.html – Mrchief

1

使用MSBuild擴展包,你可以這樣做:

<MSBuild.ExtensionPack.Web.Iis6VirtualDirectory TaskAction="Create" Website="site" Name="vdir" Properties="ScriptMaps=*,$(MSBuildToolsPath)\aspnet_isapi.dll,1,All"/> 

這將替換所有腳本映射,而不是增加一個。

相關問題