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

Iis 7 如何使用APPCMD更改IIS7中网站的物理路径?,iis-7,appcmd,Iis 7,Appcmd,我需要通过appcmd.exe工具通过命令行更改网站的物理路径,但我无法理解语法。有人能帮忙吗?这是你应该做的: C:\Windows\System32\inetsrv>appcmd set vdir“MySite/”-physicalPath:“C:\inetpub\temp” 注意:“MySite/”是虚拟目录的名称,因此如果虚拟目录位于默认网站下,则可能需要设置“default web site/MySite/” 至于如何执行其他appcmd命令,只需键入:appcmd set vdir

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

这是你应该做的:

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

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


至于如何执行其他appcmd命令,只需键入:appcmd set vdir/?

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

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

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


希望这有帮助

以上答案是正确的。下面是设置默认网站和几个其他虚拟目录的效果。我们希望默认网站位于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"

语法很简单,但是确定appcmd为虚拟目录使用的确切字符串可能很棘手。

按站点和应用程序名称获取虚拟目录列表,以帮助确保尝试设置正确的内容

C:\Windows\System32\inetsrv\appcmd.exe list apps /config /xml
可选择管道
|更多
和/或
模式concols=160
这个正则表达式提取了我想要的部分

var q= from siteApp in config.XPathSelectElements("appcmd/APP")
        let appName=siteApp.Attribute(XNamespace.None+"APP.NAME").Value
            from app in siteApp.XPathSelectElements("application")
        let appPath=app.Attribute(XNamespace.None+"path").Value
        let pool=app.Attribute(XNamespace.None+"applicationPool").Value
        let vd=app.XPathSelectElements("virtualDirectory[@path]")
        let virtuals=vd.Select (v => new{VirDir=v.Attribute(XNamespace.None+"path").Value,PhysicalPath=v.Attribute(XNamespace.None+"physicalPath").Value})
        let xvirtuals=virtuals.Select (v => new{ VirDir=v.VirDir,
            PhysicalPath=v.PhysicalPath,
            EnvRoot=v.PhysicalPath.ToString().StartsWith("%")})
        select new{AppName=appName,AppPath=appPath, Pool=pool,Virtuals=xvirtuals};
因此,对于一个特定的站点,它将成为
appcmd.exe设置vdir“DefaultWebSite/jms”-physicalPath:“c:\inetpub\wwwroot\mytargetPath”

以下是变量替换:

appcmd.exe set vdir“
+appName+virt.VirDir+
”-physicalPath:“
+targetPath+

要查看该站点的配置设置,请执行以下操作:

    C:\Windows\System32\inetsrv\appcmd.exe list apps /config /xml /path:/jms
另一个需要注意的用法:

    C:\Windows\System32\inetsrv\appcmd.exe list apps /metadata /config:* /xml

以下内容适用于我在IIS 7.5上的工作。它会更改网站的物理路径:

appcmd set site /site.name:"website name" /application[path='/'].virtualDirectory[path='/'].physicalPath:"C:\new\path"
键入以下内容以获取可设置的属性的完整列表:

appcmd set site /site.name:"website name" /?

如果您试图更改Web应用程序的物理路径,下面是一个示例,它将在Web站点“Default Web Site”下创建的Web应用程序“spockadodle”更改为物理路径“C:_junk”

我通过运行命令解决了这个问题:

appcmd set app /app.name:"Default Web Site/spockadoodle"  /?
在我观察到的输出中

ERROR (message:-path
-applicationPool
-enabledProtocols
...
-[path='string'].physicalPath
在此之前,在命令的输出中

appcmd set apps /?
appcmd list app "Default Web Site/spockadoodle" /config
所提到的产出:

示例:appcmd设置app“Default Web Site/”/enabledProtocols:http

Sets the "enabledProtocols" property of the application "Default Web
Site/".
因此,从引用如何设置“enabledProtocols”的示例中,我用[path='string'].physicalPath代替了这个示例

了解属性表达式的值[path='string'] 我观察到命令的输出

appcmd set apps /?
appcmd list app "Default Web Site/spockadoodle" /config
输出显示Web应用程序Spockadodle具有路径属性值“/:


这并没有回答这个问题。如上所述,我需要更改网站的物理路径,而不是虚拟目录。另外,问题是我无法理解语法。我知道/?。输出的帮助没有清楚地描述语法应该是什么样子。@Frank Edwards-1。我想你还没有测试过我的答案2。在IIS 7.0中,每个站点必须有一个应用程序,每个应用程序必须有一个虚拟目录。站点的根虚拟目录指向站点的物理路径。为了更好地理解site/application/virtualdirectory的概念,我建议阅读这篇文章:特别是标题为IIS 7.0配置:section的部分如果您使用appcmd add site/Name:test创建站点,那么以后将无法添加phyicalpath,您必须使用(至少)appcmd add site/Name:test/physicalPath:“C:\inetpub\wwwroot\mysite”这会导致站点对象“test”添加了APP对象“test/”添加了VDIR对象“test/”,然后允许您在以后更改VDIR physicalPath是的,嗯,作为,@PaulGo只要我在管理员提升的命令提示符下运行,这个答案就完全符合您的要求。绿色检查进入@ruffin这个问题是在很久以前(11年!)发布的,我甚至不知道我在问什么,也不知道为什么,所以我决定绿色勾选这个答案,因为它似乎是为人们创造最大价值的答案……一些解释非常有用。非常感谢。