Sim*_*ele 15 iis asp.net-mvc iis-7 wix
对于IIS6,我可以使用Wix中的IIS帮助程序来安装这样的Web应用程序:
<iis:WebAppPool
Id="AP_MyApp"
Name="My Application Pool"
Identity="networkService" />
<iis:WebApplication
Id="WA_MyApp"
Name="MyApp"
WebAppPool="AP_MyApp">
<iis:WebApplicationExtension
CheckPath="no"
Executable="[NETFRAMEWORK20INSTALLROOTDIR]aspnet_isapi.dll"
Verbs="GET,HEAD,POST"/>
</iis:WebApplication>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这对IIS7不起作用.我们不想使用aspnet_isapi.dll机制,而是希望集成管道处理请求路由.此脚本创建的应用程序池处于经典模式而非集成模式,因此没有任何处理程序可以正常运行.
如何在IIS 7上正确安装MVC应用程序?
Jas*_*rch 11
我个人建议使用AppCmd.exe(matthewthurlow的第一个项目符号),因为您不必依赖正在安装的旧管理组件,也不必冒险手动修改配置XML.
如果您对AppCmd不满意,Mike Volodarsky有一篇关于AppCmd.exe入门的精彩文章,并且Microsoft IIS配置参考非常好,提供用于修改每个配置项的UI,代码和AppCmd示例(例如应用程序池) .在IIS7管理包还包括一个配置编辑器,允许你生成APPCMD脚本从任何现有配置.
要将AppCmd集成到WiX中,您需要为每个命令创建和安排两个自定义操作.WiX v3手册中有一般信息记录了这个程序,我在下面列举了一个具体的例子.
首先,您需要设置立即操作以将命令行存储在属性中:
<CustomAction
Id="CreateAppPool_Cmd"
Property="CreateAppPool"
Execute="immediate"
Value=""[WindowsFolder]system32\inetsrv\APPCMD.EXE" add apppool /name:"[APP_POOL_NAME]"" />
Run Code Online (Sandbox Code Playgroud)
接下来,设置引用此属性的延迟操作:
<CustomAction
Id="CreateAppPool"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="deferred"
Return="ignore"
Impersonate="no"/>
Run Code Online (Sandbox Code Playgroud)
最后,您需要安排这些.设置属性的立即操作似乎在InstallFinalize之后运行良好,并且延迟操作在InstallFiles之后有效.我还没有找到回滚动作.
MapGuide Open Source广泛使用这种方法; 您可以在我们的MapGuide.wxs文件中看到CA计划,在IIS7.wxs文件中看到CA定义.
小智 2
WIX 的 IIS 扩展不支持 IIS7。IIS 团队不断重写版本之间的元数据库。有很多东西不起作用,其中缺乏集成的应用程序池。
在扩展被重写之前,您只剩下三个选择:
我目前选择了 xmlconfig 选项,因为您可以在组件中执行此操作并将其与功能绑定。
| 归档时间: |
|
| 查看次数: |
10561 次 |
| 最近记录: |