0

我已将我的 ASP.Net 网站从一台服务器上的 UNC 路径迁移到新的更大服务器上的新 UNC 路径。

弄乱了代码访问安全权限caspol确保 AppPool 具有正确的设置后,该网站运行正常,没有古怪的“PolicyException:无法获取所需权限”CAS 错误。

不过,我遇到的问题是有一个子目录配置为它自己的 Web 应用程序。该应用程序给了我一个黄屏死机错误:

System.Security.SecurityException:请求“System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限失败。

现在我知道该站点现在以完全信任的方式运行,那么为什么这个 subdir 应用程序不起作用?

4

1 回答 1

0

(在提问的同时回答我自己的问题)

虽然许多设置是从父站点继承的,但以下内容不一定(它们在子目录应用程序的“高级设置”对话框中可用):

  • 应用程序池
  • 物理路径
  • 物理路径凭证
  • 物理路径凭据登录类型
  • 启用的协议

IIS7 高级设置对话框的屏幕截图

查看应用程序的高级设置,我可以看到物理路径仍然指的是旧服务器的 UNC 路径。更改了 CAS 政策后,这将不再有效。在此处更正 UNC 路径使问题消失。

奖励积分

另一个迹象是应用程序日志中的警告级别条目:

事件代码:3006
事件消息:发生解析器错误。
...
事件详细代码:0

应用信息:

应用程序域:/LM/W3SVC/3/ROOT/ [已编辑]
信任级别:完整
应用程序虚拟路径:[已编辑]
应用程序路径:[UNC 路径]
机器名称:[已编辑]

处理信息:

进程 ID:4592
进程名称:w3wp.exe
帐户名称:[已编辑]

异常信息:

异常类型:HttpException
异常消息:请求“System.Web.AspNetHostingPermission,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。

于 2012-07-21T21:22:34.373 回答