在網路共享或 Intranet 項目上編譯網站時,請求“System.Web.AspNetHostingPermission”類型的權限失敗
我使用 Windows 7 已經有一段時間了,但自從我升級後就不必使用特定的舊 Intranet 應用程序了。不幸的是,此應用程序設置為託管在 Intranet 伺服器上的 ASP.NET 網站項目。當我在 Visual Studio 2008 中打開網站並嘗試對其進行調試時,我收到以下編譯器錯誤:
請求“System.Web.AspNetHostingPermission”類型的權限失敗
要在 Windows Vista 機器上解決此問題,我會將機器的 .NET 安全配置信任級別更改為本地 Intranet 的完整(此處概述的修復)。我相信這個配置實用程序依賴於 mscorcfg.msc,根據一些粗略的研究,它似乎是 .NET 2.0 SDK 的一部分。我已嘗試按照此Microsoft 支持文章中的說明執行以下命令,但無濟於事。
驅動器:\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 緊湊型框架 3.5
- Microsoft .NET Framework 4 客戶端配置文件
- Microsoft .NET Framework 4 擴展
- Microsoft .NET Framework 4 多目標包
- 微軟 ASP.NET MVC 1.0
- 微軟 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 - zh-CN
- 適用於 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錯誤地發出命令?還有什麼我想念的嗎?
在進行了一些額外的探勘之後,我發現了 Aaron Stebner 的一篇部落格文章,其中包含有關 .NET Framework 2.0 配置工具設置的詳細資訊。Stebner 詳細介紹瞭如何從 .NET 可再發行組件中刪除配置實用程序並僅將其放置在 SDK 中。幾年前沒什麼大不了的,但現在社區依賴更新的 SDK 並且只安裝框架的可再發行/緊湊版本,我們無法訪問 .NET Framework 2.0 配置工具。
微軟的官方回答是使用程式碼訪問安全策略工具 (Caspol.exe) 配置安全策略。不幸的是,這個命令行實用程序對我不起作用。但是,我不排除使用者錯誤導致失敗的原因。
最終,Stebner 解決了我的問題,因為他提供了配置工具的安裝程序。一旦我安裝了配置實用程序,我就可以按照DotNetSlackers 文章 System.Web.AspNetHostingPermission when Accessing Network or Intranet Projects using Visual Studio 2005中概述的步驟進行操作,我將其解釋為以下步驟。
要更改本地電腦的 .NET 安全設置,請轉到
開始 > 控制面板 > 管理工具 > Microsoft .NET Framework 2.0 配置
完全展開My Computer並選擇Runtime Security Policy。在右側,選擇調整區域安全。保留預設選項(對此電腦進行更改)並點擊下一步。選擇Local Intranet並將信任級別更改為Full Trust。然後選擇下一步,然後選擇完成。重新啟動 Visual Studio,您應該已準備就緒。