【问题标题】:Renaming applications in IIS 7.0在 IIS 7.0 中重命名应用程序
【发布时间】:2011-08-06 22:06:39
【问题描述】:

众所周知,通过 IIS 管理器的窗口界面编辑应用程序设置时,不允许编辑应用程序别名。应用程序的别名为灰色(不允许更改)。但在本文中,您可能会发现如何通过命令行实用软件来做到这一点:

http://www.foliotek.com/devblog/rename-applications-and-virtual-directories-in-iis7/

但是还有另一种方法可以做到这一点。您可以按照本文中的说明编辑设置文件:

http://learn.iis.net/page.aspx/150/understanding-sites-applications-and-virtual-directories-on-iis-7/#Configuration

在设置文件中,我只是更改了应用程序元素的路径属性的值(“/Site1”),仅此而已:

<application path="/Site1" applicationPool="DefaultAppPool">
    <virtualDirectory
        path="/" 
        physicalPath="C:\Sites\Site1" />
</application>

问题是我不知道这两种方式是否相同,是否有相同的结果。也许命令行实用程序 (appcmd) 除了重命名应用程序名称之外还做了一些额外的工作?

【问题讨论】:

标签: iis-7 rename appcmd


【解决方案1】:

我最近不得不这样做,我认为您最好使用 appcmd,因为正如您所说,我们不知道幕后可能会发生哪些其他变化

例子,

appcmd list app

APP "Default Web Site/" (applicationPool:DefaultAppPool)
APP "Default Web Site/develop" (applicationPool:mypool)
APP "Default Web Site/develop/xyz" (applicationPool:mypool)

就我而言,我确实必须从孩子开始重命名。否则,appcmd 将找不到子站点。

appcmd set app "Default Web Site/develop/xyz" -path:/B455/xyz
appcmd set app "Default Web Site/develop" -path:/B455

之后

appcmd list app

APP "Default Web Site/" (applicationPool:DefaultAppPool)
APP "Default Web Site/B455" (applicationPool:mypool)
APP "Default Web Site/B455/xyz" (applicationPool:mypool)

注意:appcmd 可以在 %windir%\system32\inetsrv 下找到

【讨论】:

  • 而且,更新配置文件对我不起作用。运行 appcmd 就可以了。 +1
  • 如果您提供的路径参数不可见,则应用程序可能无法再轻松访问以修复它。当我尝试这个时,应用程序的身份验证设置并没有跟随应用程序的新名称。谨慎使用。
  • 好东西。为我们工作。
【解决方案2】:

我最近使用appcmd 更改了网站应用程序名称,没有任何问题。然后我以管理员身份运行了 cmd 提示符:-

cd c:\windows\syswow64\inetsrv\
appcmd set app WebsiteName/applicationname -path:"/newapplicationname"

工作一种享受:)

【讨论】:

  • 供参考。以下是查看已安装应用程序的方式:%systemroot%\syswow64\inetsrv\appcmd list app 注意:如果需要,请将 syswow64 替换为 system32。
【解决方案3】:

这里发生的所有事情,无论您使用哪种方法,都是更改了应用程序路径的名称。

这真的没有什么魔力。显然,您的 Web 应用程序中任何依赖于旧路径名的路径都需要重命名。

您可能会发现我对这个问题的回答有助于了解 IIS7 中虚拟目录和应用程序的机制:

Using ServerManager to create Application within Application

【讨论】:

    【解决方案4】:

    使用 Powershell 非常简单:

    rename-item IIS:\Sites\yoursitename\yourappname\ newappname
    

    如果缺少 IIS:\ 命名空间,请确保您在服务器上安装了 IIS 管理脚本和工具。您可以从服务器管理器 -> Web 服务器角色 -> 角色服务 -> 管理工具 -> IIS 管理安装它

    【讨论】:

    • 可能还需要将模块导入您的 Powershell 会话:Import-Module WebAdministration
    【解决方案5】:

    我确实遇到了 appcmd 方法的问题。我的应用程序使用经典 ASP“启用父路径 = True”,并使用该命令重命名将其重置为默认值 False。

    【讨论】:

      最近更新 更多