我需要经由Appcmd.exe工具命令行来更改网站的物理路径,但我想不通的语法。 有人能帮忙吗?
Answer 1:
这是你应该怎么做:
C:\ WINDOWS \ SYSTEM32 \ INETSRV> appcmd设置VDIR “mysite的/” -physicalPath: “C:\的Inetpub \ TEMP”
注:“mysite的/”是你的虚拟目录的名称,所以如果你的虚拟目录是默认Web站点下你可能必须设置“默认Web站点/ mysite的/”
至于搞清楚如何做其他APPCMD命令只是类型:appcmd设置VDIR /?
你会得到所有你能做的设置虚拟目录的什么信息。
更具体地讲,如果你想知道什么设置,您可以为特定的虚拟目录类型更改:appcmd设置VDIR“mysite的/” /?
这些例子只是虚拟目录由他们适用于其他APPCMD命令
希望这可以帮助
Answer 2:
对我来说,以下的作品在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" /?
参考
Answer 3:
上面的答案是正确的。 下面是它可能看起来像设置默认的Web站点和其他几个虚拟目录。 我们希望默认的网站是在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需要为虚拟目录的确切字符串可能会非常棘手。
Answer 4:
要获得虚拟目录的列表,通过网站和应用程序名称,以确保您正试图设置正确的事情。
C:\Windows\System32\inetsrv\appcmd.exe list apps /config /xml
任选通过管道将|more
和/或mode con cols=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 set 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
Answer 5:
而如果你正在试图改变Web应用程序的物理路径,这里有一个例子改变被下网站“默认Web站点”创建Web应用程序“Spockadoodle”有物理路径“C:_junk”。
appcmd set app /app.name:"Default Web Site/spockadoodle" -[path='/'].physicalPath:c:\_junk
我想通了这一点通过运行以下命令:
appcmd set app /app.name:"Default Web Site/spockadoodle" /?
并在输出我观察
ERROR (message:-path
-applicationPool
-enabledProtocols
...
-[path='string'].physicalPath
并在此之前,在该命令的输出
appcmd set apps /?
输出提到:
例如:appcmd设置应用程序 “默认Web站点/”/ enabledProtocols:HTTP
Sets the "enabledProtocols" property of the application "Default Web Site/".
所以,从该例子援引了如何设置“enabledProtocols”,我取代的[路径=“字符串”]的例子。physicalPath
知道该属性表达[路径=“字符串”] I的值在命令的输出观察到的
appcmd list app "Default Web Site/spockadoodle" /config
输出显示Web App的Spockadoodle具有路径attribtue值“/”:
<应用路径= “/ spockadoodle” applicationPool = “IRServices”>
<virtualDirectoryDefaults />
<virtualDirectory路径= “/” physicalPath = “C:_junk”/>
</应用>
另外,我想通了使用来自实例网站上的/app.name标识符http://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe