在网络共享或Intranet项目上编译网站时,请求获得“System.Web.AspNetHostingPermission”类型的权限失败

时间:2010-05-04 21:16:25

标签: .net asp.net visual-studio debugging webforms

我已经使用Windows 7一段时间了,但自升级以来,我不必使用特定的传统Intranet应用程序。不幸的是,此应用程序设置为托管在Intranet服务器上的ASP.NET网站项目。当我在Visual Studio 2008中打开网站并尝试调试它时,我收到以下编译器错误:

申请“System.Web.AspNetHostingPermission”类型的权限失败

要在Windows Vista计算机上解决此问题,我会将本地Intranet(fix outlined here)的计算机的.NET安全配置信任级别更改为完全。我相信这个配置实用程序依赖于mscorcfg.msc,它来自一些粗略的研究似乎是.NET 2.0 SDK的一部分。我试图按照下面Microsoft Support article运行以下命令的说明进行操作。

Drive:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url
"file:////\\computername\sharename\*" FullTrust -exclusive on

目前,我的计算机上安装了以下.NET,ASP.NET和.NET SDK组件

  • Microsoft .NET Compact Framework 2.0 SP2
  • Microsoft .NET Compact Framework 3.5
  • Microsoft .NET Framework 4客户端配置文件
  • Microsoft .NET Framework 4 Extended
  • Microsoft .NET Framework 4多目标包
  • Microsoft ASP.NET MVC 1.0
  • Microsoft ASP.NET MVC 2
  • Microsoft ASP.NET MVC 2 - Visual Studio 2008工具
  • Microsoft ASP.NET MVC 2 - Visual Studio 2010工具
  • 用于Visual Studio 2008 .NET Framework工具的Microsoft Windows SDK - enu
  • 用于Visual Studio 2008标头和库的Microsoft Windows SDK
  • 用于Visual Studio 2008 SDK参考程序集和IntelliSense的Microsoft Windows SDK
  • 用于Visual Studio 2008 SP1工具的Microsoft Windows SDK
  • 用于Visual Studio 2008 SP1 Win32工具的Microsoft Windows SDK
  • 适用于Windows Server 2008的Microsoft Windows SDK(6001.18000.367)

我是否需要安装.NET 2.0 SDK?我是否错误地发出了caspol命令?还有其他我不想要的东西吗?

3 个答案:

答案 0 :(得分:16)

经过一些额外的挖掘后,我遇到了Aaron Stebner关于Details about setup for the .NET Framework 2.0 configuration tool的博客文章。 Stebner详细说明了如何从.NET可再发行组件中删除配置实用程序并仅将其放置在SDK中。几年前并不是什么大不了的事情,但现在社区依赖于更新的SDK并且只安装了框架的可再发行/紧凑版本,我们失去了对.NET Framework 2.0配置工具的访问权。

微软的官方回答是Configure Security Policy Using the Code Access Security Policy Tool (Caspol.exe)。不幸的是,这个命令行实用程序对我不起作用。但是,我不排除用户错误的原因。

最终,Stebner解决了我的问题,因为他提供了installer for the configuration tool。一旦我安装了配置实用程序,我就可以按照DotNetSlackers article System.Web.AspNetHostingPermission when Accessing Network or Intranet Projects using Visual Studio 2005中概述的步骤进行操作,我已将其解释为以下步骤。

要更改本地计算机的.NET安全设置,请转到

开始>控制面板>管理工具> Microsoft .NET Framework 2.0配置

完全展开我的电脑并选择运行时安全政策。在右侧,选择调整区域安全性。保留默认选项(对此计算机进行更改),然后单击下一步。选择本地Intranet 并将信任级别更改为完全信任。然后选择Next,然后选择Finish。重新启动Visual Studio,你应该全部设置。

答案 1 :(得分:8)

尝试将应用程序池设置Load User Profile更改为True

在Windows 7中,默认设置为False。似乎在Windows Vista中,IIS 7会自动为您设置。

答案 2 :(得分:-1)

这个问题发生在我身上,解决方案很简单,我只是在物理文件上添加应用程序池用户的权限,然后生成IISReset,现在它正在运行。