你如何解决一个应用程序的IIS虚拟path?

当我尝试在IIS 6上将ASP.NET版本更改为v4时,我收到以下警告:

更改框架版本需要重新启动W3SVC服务。 或者,您可以通过运行以下命令来更改Framework版本而不重新启动W3SVC服务:aspnet_regiis.exe -norestart -s IIS -Virtual-Path

你想继续(这将改变框架版本,并重新启动W3SVC服务)?

我如何解决IIS-Virtual-Path

我已经尝试了明显的path,即:

aspnet_regiis.exe -norestart -s "/WebSites/Extranet/AppName"

其中WebSites是IIS中文件夹的名称,Extranet是根应用程序的名称,AppName是我尝试更改的虚拟目录应用程序的名称。

谢谢!

编辑:

如何在下面的IIS6安装程序中计算Auth虚拟目录的虚拟path:

替代文字http://imgbag.com/joshz/stackoverflow/iis6vp.png

我努力了:

aspnet_regiis.exe -norestart -s "/Web Sites/Extranet/Auth"

aspnet_regiis.exe -norestart -s "Auth"

我得到:

Installation stopped because the specified path (WhateverIPutIn) is invalid.

我解决了它。 我不得不使用:

aspnet_regiis -lk获取“IIS”格式的文件夹列表

然后我做一些事情:

aspnet_regiis.exe -norestart -s "W3SVC/1234567/root/AppName"

我运行aspnet_regiis -lk的问题是,我得到了一个不完整的ID列表,而且我也不知道哪个ID对应于我想要处理的网站。

find您的网站的ID更简单的方法是通过单击IIS中的“网站”节点(文件夹), 如图所示 。 在右侧,您应该看到所有网站的“标识符”,状态,IP和端口列表。

显示ID的图片

这是一个很好的总结

W3SVC / + [IIS控制台的站点标识符] + / root

例如W3SVC/1234567/root

find标识符

单击IIS中的网站节点(文件夹)。
在右侧是所有具有其Identifiers ,状态,IP和端口的网站的列表。

现在在一起

aspnet_regiis.exe -norestart -s "W3SVC/1234567/root"

最后

如果需要,将虚拟目录添加到最后的W3SVC/1234567/root/APPNAME

我认为你需要使用以/ W3SVC开头的path。 也许这篇文章可以帮助你进一步。

在不重新启动W3SVC的情况下更改Framework版本:运行aspnet_regiis.exe -norestart -s IIS-Virtual-Path

aspnet_regiis.exe应该从%SystemRoot%\ Microsoft.NET \ Framework(必需的dotnet版本)运行,例如C:\ WindowsMicrosoft.NET \ Framework \ v4.0.30319

IIS-Virtual-Path是:W3SVC /(WebsiteID)/ root [/ AppName]其中(WebsiteID)是IIS中列出的标识符(参见Diego C的上图)和[/ appname]是在您的网站下面的可选虚拟目录。 (例如W3SVC / 1234567890 / root / dotnetnuke)

  1. 打开命令提示符
  2. 导航(CD)到C:\ WindowsMicrosoft.NET \ Framework \ v4.0.30319
  3. 执行aspnet_regiis.exe -norestart -s“W3SVC / 1234567890 / root / dotnetnuke”

我能够按照joshcomley的post在这里的build议,但必须从生成的XML文件获取虚拟path的名称。 您可以使用IIS的导出网站configuration文件(xml文件)。 里面有几个标签,看起来像这样:

  <IIsWebVirtualDir Location ="/LM/W3SVC/2070355274/root" 

只需select以“root”结尾的第一个。

工作很好。

(尝试,但不能在这里发布图像)