应用程序尝试执行安全策略不允许的操作



我在Visual Studio 2008中开发了一个Asp.net网站,在使用Vista操作系统时运行良好,但我的工作站升级到了Windows 7,现在我出现了以下错误:

安全异常描述:应用程序试图执行安全策略不允许的操作。授予申请所需的权限请联系您的系统管理员或在中更改应用程序的信任级别配置文件。

异常详细信息:System.Security.SecurityException:的请求"System.Web.AspNetHostingPermission,System,"类型的权限,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089'失败。

我在Visual studio中的本地计算机上运行时遇到此错误。。。我已经在谷歌上搜索了这个错误,但到目前为止没有发现任何帮助。当部署在服务器上时,我不会得到错误,只是在我的本地服务器上。

该网站引用了我在同一解决方案中创建的.dll项目。当我尝试安装这些.dll项目中的任何一个项目中包含的对象时,似乎会出现错误。

Web.config中的此设置没有帮助:

<trust level="Full" originUrl="" />

两者都没有:

<securityPolicy>
    <trustLevel  name="Full" policyFile="internal" />
</securityPolicy>

这对我很有效。在web.config中添加

<system.web>
   <trust level="Full" />
</system.web>

这是一个老问题,但我最近遇到了这个确切的问题,因为这个问题存在于本地机器上,而不是远程机器上,就像这个特定错误所带来的大多数其他信息一样,这些解决方案都没有帮助,所以我将把我的解决方案放在这里。

我的问题是,我使用的是网络工作站,并试图运行存储在网络驱动器上的解决方案。出于某种原因,我的本地机器不信任那个特定的驱动器,它不会接受任何提高应用程序信任级别的尝试。

一旦我意识到问题出在驱动器本身,我就简单地将整个解决方案移到另一个解决方案上,它为我解决了问题。我想,与网络管理员讨论他们的权限可能也有助于纠正错误,但只需将解决方案切换到本地驱动器就可以解决我遇到的问题,并且可能对其他人有效。

分辨率

要解决此行为,请将FullTrust权限授予远程共享:

  1. 在Web服务器上,打开"管理工具",然后双击"Microsoft.NET Framework配置"。

  2. 展开"运行时安全策略",展开"计算机",然后展开"代码组"。

  3. 右键单击"全部代码",然后单击"新建"。

  4. 选择"创建新代码组"。为代码组指定一个相关的名称,例如应用程序共享的名称。单击"下一步"。

  5. 在"选择此代码组的条件类型"列表中,选择URL。

  6. 在URL框中,按以下格式键入共享的路径:file:////\computernamesharename*

注意:将computername替换为承载远程共享的计算机的名称。将sharename替换为共享的名称。

  1. 单击"下一步"。在下一页上,选择"使用现有权限集",然后选择"完全信任"。

  2. 单击"下一步",然后单击"完成"。

  3. 重新启动Microsoft Internet Information Services(IIS)以重新启动ASP.NET工作进程。

如果"管理工具"下未显示Microsoft.NET Framework配置,则可以安装.NET Framework SDK以添加Microsoft.NET Framework配置。或者,您可以运行以下命令进行更改:

Drive:WINDOWSMicrosoft.NETFrameworkv2.0.50727caspol.exe -m -ag 1 -url    "file:////\computernamesharename*" FullTrust -exclusive on

有关更多详细信息:https://support.microsoft.com/en-us/kb/320268

分辨率

(1) 使用Internet信息服务(IIS)为相应的域创建应用程序池。登录到远程桌面并打开IIS管理器。展开树"应用程序池"。右键单击并选择"新建|应用程序池",然后提供所需的详细信息。

(2) 下一步是将域放在新创建的应用程序池下。要执行此操作,请展开标记为"网站"的树,然后展开树下的"默认网站"。选择域名,右键单击,然后选择"属性"菜单项。选择标记为"应用程序池"的下拉框,然后选择新创建的应用程序池名称。

注意:如果您在服务器上安装了某些流行的主机控制面板,则可以使用这些面板自动执行上述步骤。

(3) 将以下代码行添加到machine.config文件中。此文件可以位于文件夹下-根驱动器名称:\WINDOWS\Microsoft.NET\Framework\v1.14322\CONFIG

<location path="yourdomain.com" allowOverride="true">
   <system.web>
     <trust level="Full" originUrl=""/>
   </system.web>
</location>

(A) 您应该要求对服务器具有管理权限并访问远程桌面以解决上述问题。如果您无法访问服务器,则应联系您的托管服务提供商。

(B) 将您的domain.com替换为出现问题的相应域名。

警告:对machine.config文件的不正确修改将导致服务器上的ASP.NET服务出现问题。

试试这个

转到预编译dll的属性,检查它是否有以下安全消息(在窗口底部):"此文件来自另一台计算机,可能被阻止以帮助保护此计算机。"如果存在,请单击"取消阻止"、"应用"one_answers"确定"。

运行以下caspol命令以解决问题驱动器:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe-m-ag 1-url file:////c:mysitecontent* FullTrust-exclusive on

注意:请将c:mysitecontent*替换为ASP.net预编译DLL所在的实际路径。

然后重新启动系统。

如果它帮助你投票,请。

我得到了同样的错误。。。所以我用两个步骤解决了。首先,在web.config文件中添加代码。

第二,更改IIS管理器。在IIS中选择服务器。单击/打开管理下的功能委派。然后,将.NET信任级别更改为读/写(从右侧操作面板)

感谢

最新更新