所以 - 经过大量研究,似乎 < identity impersonate=true > 仅在 Application_Start 事件触发后才有效。
有谁知道这个问题的任何解决方法?我有一个应用程序需要在应用程序首次启动时创建数据库。运行 IIS 网站的用户具有适当的权限,可以以 APP_POOL 用户特别没有的方式进行操作。
我目前的 HACK 解决方案是放(伪代码)
static bool AppInitialized = false;
void Session_Start() {
if (!AppInitialized) {
AppInitialized=true;
InitializeApp();
}
}
impersonate=true 将在特定会话开始时“生效” - 所以这很有效,但看起来很愚蠢,因为我基本上是在重新创建 Application_Start 事件的行为。似乎必须有一个更优雅的解决方案来解决这个问题——不是吗?