我在用着文件助手用于读取 csv 文件,一切都很好,直到我从 VS dev 服务器切换到 IIS,我得到了一个“PolicyException:无法获取所需的权限”,我谷歌了一下,发现我需要添加反射权限为了使其工作,有人知道该怎么做吗?
答案1
听起来您是在部分信任下运行。如果您的生产环境是在完全信任下运行,只需更新您的开发环境以在完全信任下运行即可。但是,如果您尝试模拟您的生产环境,那么请按照以下方法进行更改:
转到框架文件夹/配置。找出您处于哪个信任级别。例如,中等、完全等。这些级别可能在您网站的 web.config 或框架的根 web.config 中设置。
无论您在开发中做什么,您都需要在生产中做同样的事情。因此,第一步是像生产一样设置您的开发。然后,如果生产是中等信任(例如),您需要更新 web_mediumtrust.config 文件或创建它的副本作为自定义策略。使用根 web.config 文件中的语法来了解如何定义它。搜索关键字“trust”。
将以下内容添加到您的信任模板:在以下<SecurityClasses>
部分中:
<SecurityClass Name="ReflectionPermission" Description="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
在该<PermissionSet class=NamedPermissionSet ..>
部分中,添加如下内容:
<IPermission
class="ReflectionPermission"
version="1"
Flags="ReflectionEmit"
/>
其中 Flags 是特定权限的逗号分隔列表。
或者:
<IPermission
class="ReflectionPermission"
version="1"
Unrestricted="true"
/>
确保获得批准将相同的设置推送到生产中。
答案2
您使用的任何程序集是否位于网络共享上?如果是,则:
- 将它们移动到本地机器。
或者 - 使用“Microsoft .NET Framework 2.0 配置”对本地内联网授予完全信任。