如何使用APPCMD更改IIS7中的网站物理路径?

Pau*_* Go 31 iis-7 appcmd

我需要通过命令行通过appcmd.exe工具更改网站的物理路径,但我无法弄清楚语法.有人可以帮忙吗?

Ene*_*nes 44

这是你应该做的:

C:\ Windows\System32\inetsrv> appcmd set vdir"MySite /"-physicalPath:"C:\ inetpub\temp"

注意:"MySite /"是虚拟目录的名称,因此如果您的虚拟目录位于默认网站下,则可能需要设置"默认网站/ MySite /"


至于搞清楚如何做其他appcmd命令只需输入:appcmd set vdir /?

并且您将获得有关如何设置虚拟目录的所有信息.

更具体地说,如果您想知道可以为特定虚拟目录类型更改哪些设置:appcmd set vdir"MySite /"/?

这些示例仅适用于虚拟目录,因为它们适用于其他appcmd命令

希望这可以帮助

  • @Frank Edwards - 1.我假设你没有测试我的答案2.在IIS 7.0中,每个*site*必须有一个应用程序,每个应用程序必须有一个*虚拟目录*.站点的根虚拟目录指向站点的物理路径.为了更好地理解站点/应用程序/虚拟目录的概念,我建议阅读这篇文章:http://learn.iis.net/page.aspx/150/understanding-sites-applications-and-virtual-directories-in-iis- 70 /尤其是标题为*IIS 7.0配置的部分:<sites> Section* (3认同)

Sal*_*n A 10

以下适用于IIS 7.5.它改变了网站的物理路径:

appcmd set site /site.name:"website name" /application[path='/'].virtualDirectory[path='/'].physicalPath:"C:\new\path"
Run Code Online (Sandbox Code Playgroud)

键入以下内容以获取可以设置的完整属性列表:

appcmd set site /site.name:"website name" /?
Run Code Online (Sandbox Code Playgroud)

参考


Bea*_*ans 6

如果您尝试更改 Web 应用程序的物理路径,这里有一个示例,将在网站“默认网站”下创建的 Web 应用程序“Spockadoodle”更改为具有物理路径“C:_junk”。

appcmd set app /app.name:"Default Web Site/spockadoodle"  -[path='/'].physicalPath:c:\_junk
Run Code Online (Sandbox Code Playgroud)

我通过运行命令弄清楚了这一点:

appcmd set app /app.name:"Default Web Site/spockadoodle"  /?
Run Code Online (Sandbox Code Playgroud)

在我观察到的输出中

ERROR (message:-path
-applicationPool
-enabledProtocols
...
-[path='string'].physicalPath
Run Code Online (Sandbox Code Playgroud)

在此之前,在命令的输出中

appcmd set apps /?
Run Code Online (Sandbox Code Playgroud)

输出提到:

示例:appcmd set app "Default Web Site/" /enabledProtocols:http

Sets the "enabledProtocols" property of the application "Default Web
Site/".
Run Code Online (Sandbox Code Playgroud)

因此,从引用如何设置“enabledProtocols”的示例中,我替换了 [path='string'].physicalPath 的示例

要知道 我在命令的输出中观察到的属性表达式[path='string']的值

appcmd list app "Default Web Site/spockadoodle" /config
Run Code Online (Sandbox Code Playgroud)

输出显示 Web App Spockadoodle 具有路径属性值“/”:

<application path="/spockadoodle" applicationPool="IRServices">

<virtualDirectoryDe​​faults />

<virtualDirectory path="/" physicalPath="c:_junk" />

</应用>

另外,我想出使用网站http://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe上的示例中的 /app.name 标识符


Jam*_*mes 5

上面的答案是正确的.以下是设置默认网站和其他几个虚拟目录的样子.我们希望默认网站位于D:具有应用程序的特殊唯一路径名,但其中两个虚拟目录属于C:具有自己的路径:

C:\windows\system32\inetsrv\appcmd.exe set vdir "Default Web Site/" -physicalPath:"D:\MyUniquePath"
C:\windows\system32\inetsrv\appcmd.exe set vdir "Default Web Site/OtherWebSite" -physicalPath:"C:\OtherWeb\ApplicationServer\web"
C:\windows\system32\inetsrv\appcmd.exe set vdir "Default Web Site/ExtraPlugins" -physicalPath:"C:\OtherWeb\ApplicationServer\plugins"
Run Code Online (Sandbox Code Playgroud)

语法很简单,但确定appcmd对虚拟目录所采用的确切字符串可能很棘手.