这是一个由两部分组成的问题。
我正在尝试设置我们的生产(实时)托管架构的新部分,因此我试图将我们的暂存网络服务器指向新的生产内容共享(同一子网中另一台服务器上的 UNC 路径)。
我目前收到可怕的PolicyException:无法获取所需权限的消息。
- 用户上下文对内容共享的整个层次结构具有修改权限。
- 我已经添加
<trust level="Full" originUrl="" />
到 Web.config 中(我很确定它已经是这种情况了,反正) - 我已经跑了
caspol
——见下文 - 我检查了 AppPool 设置——身份设置为适当的用户名,加载用户配置文件设置为 True
- 我刚刚设置了内容共享和 IIS 站点,所以我知道用户名和密码都是同步的(我做了仔细检查)。
更令人困惑的是,抱怨的程序集是我们的内部代码库之一。在ILSpy中对其进行反编译,我可以看到对
[assembly: SecurityPermission(SecurityAction.RequestMinimum,
SkipVerification = true)]
,除了我不记得曾经在该程序集中添加任何代码访问安全性。引用的所有类Security
都没有任何声明性,当然也没有引用AllowPartiallyTrustedCallersAttribute 或 CodeAccessPermission.Assert。
我对所有涉及的服务器(网络服务器和持有内容共享的服务器)拥有完全的管理权限。
那么如何让这个问题消失呢?
(我们是否可以将问题#1846816变成一个包含所有可能答案的社区维基,而不是阅读无数标题不具描述性且在 Google 上获得太多点击的问题?;o)
编辑:(编辑的)输出caspol -a -lg
如下:
Microsoft (R) .NET Framework CasPol 2.0.50727.4016
Copyright (c) Microsoft Corporation. All rights reserved.
Security is ON
Execution checking is ON
Policy change prompt is OFF
Level = Enterprise
Code Groups:
1. All code: FullTrust
Level = Machine
Code Groups:
1. All code: Nothing
1.1. Zone - MyComputer: FullTrust
1.1.1. StrongName - [snip]: FullTrust
1.1.2. StrongName - [snip]: FullTrust
1.2. Zone - Intranet: LocalIntranet
1.2.1. All code: Same site Web
1.2.2. All code: Same directory FileIO - 'Read, PathDiscovery'
1.2.3. Url - file://[some other my UNC share]\*: FullTrust
1.2.4. Url - [THIS UNC SHARE]\*: FullTrust
1.2.5. Url - [some other my UNC share]:\*: FullTrust
1.2.6. Url - file://[THIS UNC SHARE]\*: FullTrust
1.3. Zone - Internet: Internet
1.3.1. All code: Same site Web
1.4. Zone - Untrusted: Nothing
1.5. Zone - Trusted: Internet
1.5.1. All code: Same site Web
Level = User
Code Groups:
1. All code: FullTrust
Success