以编程方式设置IIS6通配符应用程序映射

时间:2011-07-14 16:04:49

标签: asp.net deployment msbuild iis-6

我目前正在支持构建过程,我需要在iis6网站上设置Wilcard应用程序地图。

我目前正在使用SDC任务和MSBuild扩展包的混合物来做各种事情,但是当我尝试使用这两个框架设置通配符应用程序地图时,我遇到了障碍。

或许我在文档中错过了它,但我想知道是否有人知道如何设置这些。

这里要明确的是你要在gui中设置这些:

我愿意接受设置此方法的其他方法,包括在必要时编写一些代码来执行此操作:)

ApplicationMaps

2 个答案:

答案 0 :(得分:3)

如果您使用Wix,则可以使用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();

答案 1 :(得分:1)

使用msbuild扩展包可以执行以下操作:

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

这将替换所有脚本映射,而不是添加一个。