Iis 安全异常(应用程序试图执行安全策略不允许的操作))

Iis 安全异常(应用程序试图执行安全策略不允许的操作)),iis,securityexception,full-trust,Iis,Securityexception,Full Trust,当我们试图打开我们的管理员登录页面时,我们遇到以下安全异常问题。 Security Exception Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or ch

当我们试图打开我们的管理员登录页面时,我们遇到以下安全异常问题。
 Security Exception
 Description: The application attempted to perform an operation not allowed by the security policy.
To grant this application the required 
permission please contact your system administrator or change the   application's trust level in the configuration file. 


 Exception Details: System.Security.SecurityException: Request failed.

首先,我们使用成员身份进行用户身份验证操作 我们有两个独立的应用程序,一个用于管理员,一个用于用户,每个应用程序都有自己的Web.Config文件。 用户数据上传到wwwroot中,但管理员数据上传到wwwroot/admin和admin webconfig中,我们将Login.aspx定义为admin的默认页面(当用户输入mysite.com/admin时),并为admin创建了一个虚拟目录(因为我们有两个Web.Config文件),名为/admin,路径为mysite.com/wwwroot/admin 有趣的是,我们在其他一些项目中使用了相同的方法(具有相同的成员资格和web.config以及相同的主机),但是它们工作得很好,并且提到的问题不时出现在我们的一些项目事件中(并非总是发生),尽管所有的设置和基础结构都是如此 (对于所有项目)都是相同的。 我们也有一些web服务的app_Webreference文件夹,这可能是问题的原因,但我不确定。我们试图更改安全信任级别,但主机不允许我们这样做,如果它来自主机,那么为什么我们的一些其他网站不会出现此问题,所以目前我不知道问题出在哪里但这真的有问题请帮帮我


非常感谢

我在MSDN上找到了这篇文章,我认为这篇文章是相关的(例外详细信息似乎是相同的)。它说它适用于ASP.NET 1.0和1.1,但它也是从2005年10月开始的,因此很可能没有更新以明确说明您正在使用的版本(大概>=4.0):

“阿南德·纳拉亚纳斯瓦米的MVP


症状

说明:应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请与系统管理员联系,或在配置文件中更改应用程序的信任级别

例外情况:

System.Security.SecurityException: Request Failed
原因:发生上述错误的原因是域未放置在IIS上自己的应用程序池下,以及服务器上的machine.config文件中缺少适当的信任级别

分辨率

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

  • 下一步是将域置于新创建的应用程序池下。要执行此操作,请展开标记为“网站”的树,然后展开树下的“默认网站”。选择您的域名,右键单击它并选择“属性”菜单项。选择标记为“应用程序池”的下拉框,然后选择新创建的应用程序池名称

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

  • 将以下代码行添加到machine.config文件中。此文件可以位于以下文件夹下-根驱动器名称:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG
  • 
    
    (A) 您应该需要对服务器的管理权限和对远程桌面的访问权限才能解决上述问题。如果您没有访问服务器的权限,请与主机服务提供商联系

    (B) 用发生问题的相应域名替换yourdomain.com

    警告:错误修改machine.config文件将导致服务器上的ASP.NET服务出现问题


    我也提供了帮助,只是在web.config中添加了几行代码,以便在我的web应用程序中允许完全信任级别

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

    我刚刚解决了这个问题,它可能对后来的读者有用

    • 打开IIS管理器(ctrl+r inetmgr)
    • 转到站点的功能视图
    • 单击“.NET信任级别”
    • 将站点的信任级别设置为完全(内部)

    在网站web.config中插入以下内容:

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