使用WiX将现有Web服务扩展设置为“允许”

时间:2008-11-06 19:42:06

标签: iis wix asp.net-2.0

在Web服务扩展下的IIS管理器中,默认情况下,ASP.NET v2.0.50727设置为“禁止”。我想在安装过程中将其设置为Allow。

我目前正在使用WiX第2版。

我尝试过使用:

<Component Id="Allow_WebServiceExtension_ASP.NET_2.0" DiskId="1" Guid="02247363-E423-41E1-AC15-BEF589B65A4D">
    <WebServiceExtension Id="WebServiceExtension_ASP.NET_2.0" Allow="yes" File="%SystemRoot%\Microsoft.NET\Framework\[DOTNETFRAMEWORKVER]\aspnet_isapi.dll" Description="ASP.NET v2.0.50727" UIDeletable="no" />
</Component>

这会添加第二个ASP.NET 2.0.50727条目,但不会启用第一个。

4 个答案:

答案 0 :(得分:1)

使用wix3我遇到了同样的问题。由于我还没有找到任何其他解决方案(??),我决定采用自定义操作。我使用c#和WMI支持框架(System.Management)的差别不大。 using WMI to configure IIS

好的,我发现我的Wix中只有两次错误  1. @Group缺失 - &gt;我把它设置为“ASP.NET v2.0.50727”  2.文件的路径错误。我有一个反斜杠。 解决了这些问题后,wix-iis:WebServiceExtension对我来说非常适合。

答案 1 :(得分:0)

使用WIX中的WebApplicationExtension元素,它位于IISExtension中,需要添加对WIX项目的引用。

答案 2 :(得分:0)

我最终将以下代码放入自定义操作中:

Dim WebSvcObj As Object
Dim LocatorObj As Object = CreateObject("WbemScripting.SWbemLocator")
Dim ProviderObj As Object = LocatorObj.ConnectServer(".", "root/MicrosoftIISv2", "", "")
WebSvcObj = ProviderObj.get("IIsWebService='w3svc'")
WebSvcObj.EnableWebServiceExtension("ASP.NET v2.0.50727")

它可能不漂亮,但确实有效。

答案 3 :(得分:0)

我使用vbScript修改了代码以启用我的.NET 4.0 Web服务扩展:

    Dim LocatorObj
    Dim WebSvcObj
    Dim ProviderObj

    Set LocatorObj = CreateObject("WbemScripting.SWbemLocator")
    Set ProviderObj = LocatorObj.ConnectServer(".", "root/MicrosoftIISv2", "", "")
    Set WebSvcObj = ProviderObj.get("IIsWebService='w3svc'")
    WebSvcObj.EnableWebServiceExtension("ASP.NET v4.0.30319")