添加reflection权限到IIS或Web.config?

我正在使用FileHelpers读取CSV文件,所有这一切都没有问题,直到我从VS开发服务器切换到IIS,我得到一个“PolicyException:所需的权限无法获得” ,我谷歌search,发现我需要添加reflection权限这个工作,任何人都知道如何?

这听起来像你在部分信任运行。 如果您的生产环境是完全信任的,只需更新您的开发环境即可完全信任地运行。 但是,如果您试图模拟您的生产环境,那么以下是如何更改它:

转到您的框架文件夹/configuration。 找出你在哪个信任级别。 即中等,完整等,这可能会在您的网站的web.config,或框架的根web.config。

无论你在开发中做什么,你都需要在生产中去做。 所以第一步是设置你的开发像生产。 然后,如果生产是中等信任(例如),则需要更新web_mediumtrust.config文件或将其作为自定义策略创build。 使用根web.config文件中的语法来了解如何定义它。 search关键字'信任'。

将以下内容添加到信任模板中:在<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" /> 

请务必获得批准才能将相同的设置推送到生产环境。

您使用的程序集是否位于networking共享上? 如果是比:

  • 将它们移到本地机器。
    要么
  • 使用“Microsoft .NET Framework 2.0configuration”授予对本地Intranet的完全信任。