请求类型为“System.Web.AspNetHostingPermission”的权限。

16

我在运行我的网站时遇到了问题。

我开发了这个网站,当我按F5查看结果时,会出现以下错误:

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

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

Error Page

如何解决这个问题。


授予远程共享 FullTrust 权限。 - MMK
什么是共享?你能举个例子吗? - MARKAND Bhatt
Sharename是您正在尝试连接的文件夹名称。 - MMK
我正在使用vs2008按F5键在本地主机上运行网站。因此,我的共享名称是包含网站代码的文件夹的名称。对吗? - MARKAND Bhatt
13个回答

18

如果您将应用程序文件夹映射到网络驱动器上,或者从UNC路径打开解决方案文件,通常会出现此错误。类似于这样的东西:

无效示例: \\my-server\my-project

尝试直接从路径打开解决方案

有效示例: C:\Project\MyProject

您还可以更改App Pool Identity的权限,但不建议这样做:

Web服务器(IIS) > App Pool Identity > 高级设置 > 将身份设置为Network Service


1
从我所发现的情况来看,这在网络上相当没有记录,但已经让我两次措手不及了。感谢分享。 - RyanfaeScotland
这是一篇官方的微软支持文章,确认了这个问题,并提供了解决方法:https://support.microsoft.com/zh-cn/kb/320268 - htxryan
1
谢谢,这解决了问题,必须设置为答案。在我的环境中,没有管理员权限。 - Gabriel
对于GoDaddy,我只是在web.config中进行了更改,请查看此链接:http://stackoverflow.com/a/28841495/2218697 - Shaiju T
但是,如果我所有的解决方案文件都在指向 TFS 的网络驱动器上,会发生什么? - Levimatt

10

对我起作用的一次性解决方案是将应用程序池身份(高级设置)设置为Network Service


6
尝试将应用程序池的“加载用户配置文件”值设置为“True”。这对我有用。

4

就我个人经验而言,我发现部署服务器上的AjaxControlKit.dll被阻止了。为了解决这个问题,我将该dll复制到一个新文件夹中,然后再将其粘贴到bin文件夹中。我猜想,.net不喜欢将dll直接复制到Web文件夹中。


1
FYI,我遇到了这个问题两次。第一次,@Shrink提供的32位解决方案是正确答案。而这一次,则是需要解除AjaxControlToolkit.dll的阻止。这说明任何一个答案都有可能是有效的。 - N1njaB0b

3
您可以运行以下命令,将FullTrust授权给远程共享:

C:\Windows\Microsoft.NET\Framework\v2.0.50727>caspol.exe -m -ag 1 -url "file:////\yourcomputername\yoursharename*" FullTrust -exclusive on

希望这能帮到您。

1
太棒了,运行良好!非常感谢。顺便提醒一下,在运行该命令后不要忘记重启您的应用程序池。 - Piotr Korlaga

3

我也遇到了这个问题,但是没有在任何地方看到这个特定的解决方案。

在检查IIS用户的权限、模拟用户的权限并授予应用程序完全信任之后,仍然出现错误。于是我在运行IIS的服务器上安装了Procmon.exe,并注意到IIS正在尝试访问一些损坏网站的Framework64文件。我检查了应用程序池的高级设置,发现“启用32位应用程序”设置为false。将此设置更改为true被证明是正确的操作。生活很美好。


2

我尝试了这里和其他地方发布的所有解决方案,但都没有效果。我的项目位于网络驱动器上,这在我尝试在项目中使用AjaxControlToolkit 2.0之前是有效的。显然,网络驱动器上的权限会阻止工具包中的控件运行。我将项目移回本地硬盘,然后一切都开始正常工作。


1

我遇到了同样的问题,后来意识到我是从远程文件夹中运行解决方案的。将必要的文件复制到本地文件夹中即可解决问题。但请确保您的文件夹具有完全权限。


0
如果使用此选项(不合并。为每个页面和控件创建单独的程序集)编译dll,请确保dll是最新的。我遇到了错误,因为aspx文件是新的,但dll仍在使用旧的文件。

0

我找到了一个潜在的解决方案,适用于我的系统,并且不需要更改为Network Service

进入应用程序池 -> 高级设置 -> 进程模型 -> 加载用户配置文件: True

答案来源


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接