web-dev-qa-db-fra.com

Comment changer le chemin physique du site Web dans IIS7 avec AppCMD?

Je dois modifier le chemin physique d'un site Web via la ligne de commande via l'outil Appmd.exe, mais je ne peux pas comprendre la syntaxe. Quelqu'un peut-il aider?

29
Paul Go

Voici comment vous devriez faire:

C:\Windows\System32\inetsrv> Appld Set VDIR "MySite /" -PhysicalPath: "C:\INETPUB\TEMP"

Remarque: "MySite /" est un nom de votre répertoire virtuel, de sorte que si votre répertoire virtuel est sous le site Web par défaut, vous devez probablement définir "Site Web par défaut/MySite /"


Pour déterminer comment faire d'autres commandes AppMD, tapez simplement: Appmd Set VDIR /?

et vous obtiendrez toutes les informations sur ce que vous pouvez faire pour définir votre répertoire virtuel.

Encore plus spécifiquement, si vous voulez savoir quels paramètres vous pouvez modifier pour le type de répertoire virtuel spécifique: Set AppCMD Set VDIR "MySite /" /?

Ces exemples sont juste pour le répertoire virtuel par ils s'appliquent à d'autres commandes AppMD.

J'espère que cela t'aides

44
Enes

Les œuvres suivantes pour moi sur IIS 7.5. Cela change le chemin physique du site Web:

appcmd set site /site.name:"website name" /application[path='/'].virtualDirectory[path='/'].physicalPath:"C:\new\path"

Tapez les éléments suivants pour obtenir une liste complète des propriétés que vous pouvez définir:

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

Référence

10
Salman A

La réponse ci-dessus est correcte. Voici ce qui pourrait sembler pour définir le site Web par défaut et quelques autres répertoires virtuels. Nous voulons que le site Web par défaut soit sur D: avec un nom de chemin unique spécial pour l'application, mais deux des répertoires virtuels appartiennent à C: avec leurs propres chemins:

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"

La syntaxe est facile, mais la détermination de la chaîne exacte que AppCMD prend pour que le répertoire virtuel puisse être délicat.

5
James

Pour obtenir une liste de répertoires virtuels par site et nom de l'application pour vous aider à essayer de définir la bonne chose.

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

tuyau éventuellement tué |more et/ou mode con cols=160 cette regex a retiré les pièces que je voulais

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};

alors alors pour un site spécifique, il devient appcmd.exe set vdir "DefaultWebSite/jms" -physicalPath:"c:\inetpub\wwwroot\mytargetPath"

voici les substitutions variables:

appcmd.exe set vdir " + appName + vir.virdir + " -physicalPath:" + TargetPath + "

et regarder les paramètres de configuration pour ce site:

    C:\Windows\System32\inetsrv\appcmd.exe list apps /config /xml /path:/jms

une autre utilisation à prendre conscience de:

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

Et si vous essayez de modifier le chemin physique d'une application Web, voici un exemple de modification de l'application Web "SPOCKADOODLE" créée sous le site Web "Site Web par défaut" pour avoir le chemin physique "C: _JUNK".

appcmd set app /app.name:"Default Web Site/spockadoodle"  -[path='/'].physicalPath:c:\_junk

Je l'ai compris en exécutant la commande:

appcmd set app /app.name:"Default Web Site/spockadoodle"  /?

et dans la sortie que j'ai observée

ERROR (message:-path
-applicationPool
-enabledProtocols
...
-[path='string'].physicalPath

et avant cela, dans la sortie de la commande

appcmd set apps /?

la sortie mentionnée:

Exemple: AppCMD Set App "Site Web par défaut /"/EnabledProtocols: http

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

Donc, à partir de l'exemple citant de définir des "compactocols", j'ai substitué l'exemple de [Chemin = 'String']. Physicalpath

Pour connaître la valeur de l'expression d'attribut [Chemin = 'String'] J'ai observé dans la sortie de la commande

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

la sortie montre que l'application Web SpockadOoodle a une valeur d'attribution du chemin "/":

<chemin d'application = "/ SPOCKADOODLE" ApplicationPool = "Iservevis">

<VirtualDirectoryDefault />

<chemin VirtualDirectory Chemin = "/" PhysicalPath = "C: _JUNK" />

</ application>

En outre, j'ai trouvé pour utiliser l'identifiant /app.name Identificateur d'exemples sur le site Web http://www.iis.net/learn/get-started/geting-started-with-iis/getting-starté- avec-appmdexe

2
Beans