【问题标题】:Visual Studio Web Deployment project breaks ASPNET account permissionsVisual Studio Web 部署项目破坏 ASPNET 帐户权限
【发布时间】:2011-02-04 08:27:25
【问题描述】:

我已经使用 Visual Studio 2008 和目标框架版本 2.0 构建了一个 ASP.NET Web 应用程序。我创建了一个 Web 设置项目来在多个目标操作系统上部署它。

对于设置项目,我编写了一个在“OnCommitting”事件上执行的自定义操作。此自定义操作添加通配符脚本映射,用于通过 ASP.NET 引擎路由所有请求。

FileMon 提示在以下目录中创建文件时出错:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files

尝试此操作的用户帐户是 IWAM_。

问题是运行此设置后,如果我尝试访问新安装站点上的任何 url,我收到错误消息:

“/myapp”应用程序中的服务器错误。

访问 IIS 元数据库失败。

说明:在执行当前 Web 请求期间发生了未处理的异常。请查看堆栈跟踪以了解有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Web.Hosting.HostingEnvironmentException:无法访问 IIS 元数据库。

用于运行 ASP.NET 的进程帐户必须具有对 IIS 元数据库的读取权限(例如 IIS://servername/W3SVC)。有关修改元数据库权限的信息,请参阅http://support.microsoft.com/?kbid=267904

源错误:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

在谷歌搜索 2 天后,我已经尝试了这些选项:

  1. 运行 aspnet_regiis -i
  2. 运行 aspnet_regiis -ga \ASPNET
  3. 运行 aspnet_regiis -u 然后运行 ​​aspnet_regiis -i

到目前为止,选项 3 对我有用,但是,我想避免使用它,因为我的 Web 应用程序将部署在可能已经在 IIS 上托管其他一些应用程序的机器上,我不想打扰这些应用程序。

谁能建议我解决这个问题?

顺便说一句。我当前的系统在 Win XP SP3 和 IIS 5.1 上安装了 .Net framework 3.5 和 VS2008。

谢谢,
瓦米普

【问题讨论】:

    标签: asp.net custom-action web-deployment-project iis-5


    【解决方案1】:

    您最好的选择是安装程序包中的自定义脚本位,用于检查权限,然后根据该信息运行命令。

    在服务器操作系统上,这应该不是必需的,因为应用程序组的默认用户将位于 IIS_WPG 中并且对临时目录具有权限。 Windows XP 有一个错误的 IIS 版本,它是非标准的并且不遵循所有规则。如果您预期的部署环境是 Windows Server 2003 或更高版本,那么您的安装程序应该可以按原样运行。

    【讨论】:

    • 感谢您的回复。我的目标操作系统包括桌面操作系统的 Win XP、Vista 和 7 以及服务器前端的 Win 2000、Win 2003、Win 2008 和 Win 2008 R2。您能否详细说明基于权限运行命令?再次感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2015-05-27
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多