我试图在默认网站的根目录下,在现有的VirtDir,indx下创建一个新的WebApp,OPCClientWS。路径为/ indx / OPCClientWS。实际上,此路径已创建并链接到新创建的应用程序池。
但是,在App Pool中,我最终得到了一个额外的App引用:// indx / OPCClientWS。有了这个额外的App参考,IIS根本不会启动网站,抛出错误80070057:
万维网发布服务(WWW服务)未注册 站点1的URL前缀http:// *:80 // indx / OPCClientWS。该URL可以 无效。该网站已被停用。数据字段包含 错误号码。
wxs代码的显着部分如下:
<Feature Id="ProductFeature" Title="OPCClientWS" Level="1">
<ComponentGroupRef Id="ProductComponents" />
<ComponentRef Id="AnSM_AppPoolInstall"/>
<ComponentRef Id="AnSM_WebDir"/>
</Feature>
找到已包含indx虚拟目录的现有网站的根目录:
<Fragment>
<iis:WebSite Id="localhost_root" Description="Default Web Site">
<iis:WebAddress Id="localhost_addr" IP="AllUnassigned" Port="80"/>
</iis:WebSite>
</Fragment>
为应用程序创建应用程序池,在下一个片段中设置:
<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="AnSM_AppPoolInstall" Guid="{8C762E41-A06F-49F9-8846-29CB148A446B}" KeyPath="yes">
<iis:WebAppPool Id="AnSM_AppPool" Name="AnSMAppPool" ManagedRuntimeVersion="v2.0" Identity="networkService"/>
</Component>
</DirectoryRef>
</Fragment>
将WebVirtualDirectory添加到现有网站:
<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="AnSM_WebDir" Guid="{42A87FEB-BF0A-430D-8F23-3C4F8FE4E85F}" KeyPath="yes">
<CreateFolder/>
<iis:WebVirtualDir Id="OPCClient_VirtDir" Alias="indx/OPCClientWS" Directory="INSTALLFOLDER" WebSite="localhost_root">
<iis:WebApplication Id="AnSM_OPCWS" Name="OpcClientWS" WebAppPool="AnSM_AppPool"/>
<iis:WebDirProperties Id="AnSM_WebProps" AnonymousAccess="no" BasicAuthentication="no" WindowsAuthentication="yes"/>
</iis:WebVirtualDir>
</Component>
</DirectoryRef>
</Fragment>
将各种组件安装到虚拟目录指向的目录(在Program Files中):
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="XHQAnSM" Name="Siemens AnSM">
<Directory Id="INSTALLFOLDER" Name="OPCClientWS">
<Directory Id="OPCClientWS.Content"/>
<Directory Id="OPCClientWS.Binaries" Name="bin"/>
<Directory Id="OPCClientWS.Symbols" Name="bin"/>
</Directory>
</Directory>
</Directory>
</Directory>
</Fragment>
目标平台是Windows 2008R2 64位,IIS 7.5我搜索了网页 ad nauseum 。有没有办法调试发送到IIS的内容(例如,使用appcmd或类似内容)?
FWIW,我会将此提交给wixtoolset,但他们的错误提交网站似乎已经被软化......
答案 0 :(得分:0)
深入了解applicationHost.config文件(在C:\ Windows \ System32 \ inetsrv \ config),我发现有一个卡住的应用程序,可能是由于之前的安装失败。我怀疑这可能是由iis的Alias中的一个前导斜杠引起的:WebVirtualDir元素。
违规行是:
<application path="//indx/OPCClientWS" applicationPool="AnSMAppPool">
<virtualDirectory path="/" physicalPath="C:\Program Files (x86)\Siemens AnSM\OPCClientWS" />
</application>
关闭IIS,删除行,然后重新启动修复问题。