7

.NET 4.5.2,Windows 8.1 x64 上的 IIS 8.5。我在 /localhost/ 有一个 ASP.NET 网站。DEFAULT 网站已禁用,新网站已创建并具有正确的绑定。我正在尝试将其预编译到位:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319> aspnet_compiler -c -v /

error ASPRUNTIME: Failed to map the path '/'.

我尝试了元数据库路径路线:

aspnet_compiler -c -m lm/w3svc/2/root

error ASPRUNTIME: Failed to map the path '/'.

我可以通过指定物理路径来编译它,但我不想这样做,因为相同的应用程序存在于具有不同物理路径的不同服务器(开发人员、QA、生产)上。甚至元数据库路径也不完全相同。“/”在任何地方都是一样的。

为了咧嘴笑,我将其添加到网站的页面中,以确保我不会失去理智:

Response.Write(Server.MapPath("/"));

并得到了我的期望。

我究竟做错了什么?

4

1 回答 1

3

这是一个供股问题;显然您需要成为管理员才能访问 IIS 元数据库。我看到两种可能的解决方案:

  1. 用于-p指定物理路径;这种方式aspnet_compiler不需要访问 IIS 元数据库。(OP 已经解释过这在服务器集群中可能不是一个实用的解决方案。)
  2. 按照此处aspnet_compiler的建议,从提升的命令提示符(即“以管理员身份运行”)运行。
于 2018-07-17T09:02:20.187 回答