sql - 在 WiX 中为刚创建的应用程序池标识添加 SQL 权限

标签 sql iis wix

我有一个 WiX 包,其中有一个组件创建了一个 IIS 7 应用程序池,该池具有 ApplicationPoolIdentity 标识 (IIS AppPool\AppPoolName)。然后我有另一个组件在 SQL Server 数据库中为此身份添加权限(我使用的是 SqlString 扩展)。

当 SQL 运行以添加权限时,我收到以下错误:

Windows NT user or group 'IIS AppPool\AppPoolName' not found.



我假设这是因为 IIS 的事情发生在一个事务中,而应用程序池实际上还没有被提交。

有没有人有更好的方法来解决这个问题?

谢谢!

最佳答案

据我了解 WiX IIS 扩展的工作方式,它会在应用任何更改之前创建元数据库备份。然后,它会按延迟顺序执行您指示它执行的所有操作。如果发生错误,回滚操作只是从备份中恢复以前的状态。否则,如果一切正常,提交操作只会删除备份快照。

所以,考虑到这一点,我认为你的猜测是不正确的。应该可以做你想做的。我怀疑问题出在 Action 顺序上。确保首先执行 IIS 操作,然后执行 SQL 操作,最后执行权限。通过这种方式,您首先创建一个 AppPool,然后执行 SQL 操作,最后应用所需的权限。好吧,我可能是错的,但你应该通过试错法找到正确的顺序。

经验法则:始终生成详细日志。它包含了一切。说真的,这是我最喜欢 Windows Installer 的地方:无论发生了什么,你都会在详细日志中找到它。祝你好运!

关于sql - 在 WiX 中为刚创建的应用程序池标识添加 SQL 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5200135/

相关文章:

自 KB4338419 以来,无法再从经典 ASP 创建 C# COM 对象

WiX - 通过检查修订防止降级

c# - 检查网站是 TLS 还是 SSL 及其版本

mysql - 如何在 MySQL 中选择带空格的列名

mysql - 字段中的 Django 正则表达式

python - 如何在 SQLAlchemy 中查询关联表?

asp.net - 在启用共享配置的 IIS 7+ 上安装 Web Deploy

.net - 使用 WIX 在 IIS 应用程序池中设置 .NET 版本不起作用

Wix 主要升级 : how do I prevent Windows service reinstallation?

java - '@>'符号在postgresql中是什么意思?