设想:
- 空白 win2008 r2 安装
- 目标是运行几个具有独立池和专用用户的站点
- 新网站的新文件夹 - c:\web\siteA\wwwroot,应用程序 (asp.net) 部署在 /bin 文件夹中
- 创建一个名为“appuser”的用户并将其添加到 IIS_USERS 组
- 授予 IIS_USERS 网站文件夹读取和执行权限和应用程序用户
- 创建 IIS 站点。将 app=pool 标识设置为 appuser
- 现在我收到 YSOD 告诉我信任级别太低 -
SecurityException: That assembly does not allow partially trusted callers
- 在 web-config 上添加了
<trust level="Full" />
,但没有帮助 - 更改应用程序池用户以
Administrator
使网站运行 - 将“匿名用户身份”设置为 IUSR 或应用程序池身份没有区别
任何想法?
为什么选定的用户会对应用程序的信任级别产生影响?或者这只是一个虚假的错误信息?
是否有关于在 IIS7.5 上为隔离应用程序池设置用户的“分步”指南?
编辑:设置应用程序池用户NetworkService
也会使网站运行(参见9.)
答案1
将此属性声明添加到您的程序集:
[assembly:AllowPartiallyTrustedCallers]
答案2
问题似乎与用户帐户无关,如果消息来自 ASP.NET (YSOD),则意味着 IIS 正在正确启动 AppPool(顺便说一句,您甚至不需要将用户添加到 IIS_USRS,IIS 会自动执行此操作)。听起来可能是被复制的程序集不同,或者另一台机器中有一些策略,或者只是信任级别不同。我会使用 Web Deploy(http://www.iis.net/download/WebDeploy) 在工作服务器和其他服务器之间进行“差异”并查看可能存在哪些不同,它可能是 web.config 或 security.config 中的设置或许多东西。