2012-12-17 47 views
3

我很努力地使用wix 3.6.3303.1/4.0.12.0將基於com的isapi dll全局安裝到iis 7.5中。如何使用wix安裝全局isapi過濾器? (IIS 7.5)

我有以下WiX的配置(full config here):用IIS7.5在Windows 7 32位運行時

<Fragment> 
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
    <Component Id="IsapiDll" Guid="ADD-GUID-HERE"> 
     <File Id="isapidll" Name="isapi.dll" Source="isapi.dll" /> 
    </Component> 
    <Component Id="IisFilter" Guid="ADD-GUID-HERE"> 
     <CreateFolder /> 
     <iis:WebFilter Id="IisFilter" Name="MyIsapi" Path="[INSTALLFOLDER]isapi.dll" LoadOrder="last" Description="MyIsapi" /> 
    </Component> 
    </ComponentGroup> 
</Fragment> 

我收到以下錯誤在我的MSI日誌:

WriteIIS7ConfigChanges: Error 0x8007000e: Failed while finding IAppHostElement filter/@name=(null) 
WriteIIS7ConfigChanges: Error 0x8007000e: Failed to delete filter 
WriteIIS7ConfigChanges: Error 0x8000ffff: Unexpected IIS Config action specified for global filter 
WriteIIS7ConfigChanges: Error 0x8000ffff: Failed to configure IIS filter global. 
WriteIIS7ConfigChanges: Error 0x8000ffff: WriteIIS7ConfigChanges Failed. 

我害怕問題是wix本身的錯誤。 CreateGlobalFilter()在將pwzFilterName賦值給DeleteCollectionElement()之前,它已被賦值。這稍後會導致Iis7FindAppHostElementString()被調用,其值爲空wzAttributeValue值,該值看起來是錯誤的原因。

當然,我可能是在白費力氣,快樂生活在正確的方向指向...

更新: 我現在已經打了網站級別安裝並具有與除工作網站的屬性和元素。 Config here

編輯:將路徑屬性更改爲正確的格式。

回答

2

0x8007000e意味着內存不足,並且郵件中的(null)使我打賭這是自定義操作中的錯誤。如果你可以調試它是理想的。無論如何,在http://wixtoolset.org/bugs輸入一個錯誤可能是一個好主意。

+0

感謝羅布,我會提出一個錯誤,並看看調試如果/當我有機會。 –

0

你忘了添加網站屬性,此代碼的工作很適合我在WIX3.7:

<Component Id="IsapiFilterComponent" Guid="AE102719-D7DE-450A-A44C-29E7D9A36C0D" KeyPath="yes"> 
    <iis:WebFilter Id="MyWebDavFilter" Name="MyWebDavFilter" Path="[INSTALLFOLDER]MyWebDavFilter.dll" LoadOrder="last" Description="My Web Dav Filter" WebSite="DefaultWebSite" /> 
</Component> 

但這

<Component Id="IsapiFilterComponent" Guid="AE102719-D7DE-450A-A44C-29E7D9A36C0D" KeyPath="yes"> 
    <iis:WebFilter Id="MyWebDavFilter" Name="MyWebDavFilter" Path="INSTALLFOLDER]MyWebDavFilter.dll" LoadOrder="last" Description="My Web Dav Filter"/> 
</Component> 

讓你有同樣的錯誤。

當然,你必須添加<iis:WebSite>元素到你的wxs文件。

+0

嗨,這安裝了一個網站特定的isapi過濾器也適用於我。我不幸需要一個全局過濾器。 –