It's generally known that you are not allowed to edit the application alias while editing application settings through window interface of IIS Manager. The alias of an application has the gray color (no开发者_运维技巧t admitted to change). But in this article you may found how to do this through the command-line utility software:
http://www.foliotek.com/devblog/rename-applications-and-virtual-directories-in-iis7/
But there is an another way to do it. You can edit the settings file as it is written in this article:
http://learn.iis.net/page.aspx/150/understanding-sites-applications-and-virtual-directories-on-iis-7/#Configuration
In the settings file I just changed the value ("/Site1") of the path attribute at the application element and nothing more:
<application path="/Site1" applicationPool="DefaultAppPool">
<virtualDirectory
path="/"
physicalPath="C:\Sites\Site1" />
</application>
The issue is that I don't know whether these two ways is the same and have the same results. Maybe the command-line utility (appcmd) does some additional work except just renaming the application name?
I recently had to do this and I think you are better off using appcmd because ,as you said, we don't know what other changes may occur behind the scenes
Example,
appcmd list app
APP "Default Web Site/" (applicationPool:DefaultAppPool)
APP "Default Web Site/develop" (applicationPool:mypool)
APP "Default Web Site/develop/xyz" (applicationPool:mypool)
In my case, I did have to rename starting from the child. Otherwise, appcmd won't find the child site.
appcmd set app "Default Web Site/develop/xyz" -path:/B455/xyz
appcmd set app "Default Web Site/develop" -path:/B455
After
appcmd list app
APP "Default Web Site/" (applicationPool:DefaultAppPool)
APP "Default Web Site/B455" (applicationPool:mypool)
APP "Default Web Site/B455/xyz" (applicationPool:mypool)
Note: appcmd can be found under %windir%\system32\inetsrv
I have used appcmd
recently to change a website application name with no issues. I ran a cmd prompt as admin then:-
cd c:\windows\syswow64\inetsrv\
appcmd set app WebsiteName/applicationname -path:"/newapplicationname"
Works a treat :)
it's very easy with Powershell:
rename-item IIS:\Sites\yoursitename\yourappname\ newappname
if the IIS:\ namespace is missing, be sure you have IIS Management Scripts and Tools installed on server(s). You can install it from Server Manager -> Web Server Role -> Role Services -> Management Tools -> IIS Management
All that is happening here, regardless of which method you use, is that the name of the application path is changed.
There's really no magic to it. Obviously any paths in your web application that depended on the old path name would need to be renamed.
You might find my answer to this question useful for gaining an understanding of the mechanics of virtual directories and applications in IIS7:
Using ServerManager to create Application within Application
I did run into a problem with the appcmd method. My application uses Classic ASP "Enable Parent Paths=True", and renaming using that command reset it to the default value of False.
精彩评论