Подтвердить что ты не робот

Как изменить физический путь веб-сайта в IIS7 с помощью APPCMD?

Мне нужно изменить физический путь веб-сайта через командную строку с помощью инструмента appcmd.exe, но я не могу понять синтаксис. Может кто-нибудь помочь?

4b9b3361

Ответ 1

Вот как вы должны:

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.

Надеюсь, что это поможет

Ответ 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" /?

Ссылка

Ответ 3

Правильный ответ. Вот как это могло бы выглядеть для настройки веб-сайта по умолчанию и нескольких других виртуальных каталогов. Мы хотим, чтобы веб-сайт по умолчанию был на 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 принимает для виртуального каталога, может быть сложным.

Ответ 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

Ответ 5

И если вы пытаетесь изменить физический путь веб-приложения, вот пример изменения веб-приложения "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 set app "Веб-сайт по умолчанию /" /enabledProtocols: http

Sets the "enabledProtocols" property of the application "Default Web
Site/".

Итак, из примера, цитирующего, как установить "enabledProtocols", я заменил пример [path = 'string']. physicalPath

Знать значение для выражения атрибута [path = 'string'] Я заметил в выводе команды

appcmd list app "Default Web Site/spockadoodle" /config

вывод показывает, что в Web App Spockadoodle есть значение атрибута пути "/":

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

< virtualDirectoryDefaults/" >

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

</приложение >

Кроме того, я решил использовать идентификатор /app.name из примеров на веб-сайте http://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe