2016-08-17 4 views
5

IISサーバー間でサイトを同期するスクリプトを作成しました。私のすべてのウェブサイトはエラーなく同期されていますが、1つのサイト(もちろん最も重要なサイト)は奇妙なエラーになります。以下、私が取得Sync-WDSite Webアプリケーションの物理パスパラメーター

$spp = $path.Get_Item($Name) 
$publishsettings = Get-WDPublishSettings -FileName $_.FullName 
$sync = Sync-WDSite $Name $Name -sitephysicalpath $spp ` 
             -SourcePublishSettings $publishsettings ` 
             -IncludeApppool ` 
             -WarningAction Continue ` 
             -sourcesettings $settings ` 
             -ErrorAction Continue ` 
             -destinationsettings $settings ` 
             -debug 

エラーされ(エラーがドイツ語であるが、私は英語に翻訳してみました):

次のコード部分は、サイトを同期し

Sync-WDSite : The parameter 'Web Application Physical Path Parameter' was already defined. 
In C:\Users\Administrator\desktop\wdeploy.ps1:236 Zeichen:17 
+   $sync = Sync-WDSite $Name $Name -sitephysicalpath $spp ` 
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (:) [Sync-WDSite], DeploymentException 
    + FullyQualifiedErrorId : Microsoft.Web.Deployment.PowerShell.SyncSite 

これはどこから来るのか全く分かりません。

パラメータ-debugを使用して、コマンドレットの各手順を確認しました。このエラーは、他のサイトがサイトに関する情報を収集した段階で発生します(どのサイトで、どのアプリケーションプールを使用しているかなど)

ありがとう!

編集:

追加情報: 設定は、各サイトのファイルの公開はまったく同じ構造を持っており、次のようになりますから要求されたよう

完全なエラーメッセージ:

<?xml version="1.0" encoding="utf-8"?> 
<publishData> 
    <publishProfile 
    publishUrl="https://server:port/msdeploy.axd" 
    msdeploySite="Sitename" 
    destinationAppUrl="http://anysiteurl.domain.com:port/" 
    mySQLDBConnectionString="" 
    SQLServerDBConnectionString="" 
    profileName="Default Settings" 
    publishMethod="MSDeploy" 
    userName="server\wdeployadmin" 
    userPWD="***" 
    msdeployAllowUntrustedCertificate="True" 
    agentType="wmsvc" 
    useNTLM="False"/> 
</publishData> 

編集Martin:

writeErrorStream  : True 
PSMessageDetails  : 
Exception    : Microsoft.Web.Deployment.DeploymentException: Der Parameter 'Web Application Physical Path 
         Parameter' wurde bereits definiert. 
          bei Microsoft.Web.Deployment.DeploymentSyncParameterCollection.Add(DeploymentSyncParameter 
         parameter) 
          bei Microsoft.Web.Deployment.PowerShell.WDeployCmdletBase.ProcessUserCmd() 
TargetObject   : 
CategoryInfo   : InvalidOperation: (:) [Sync-WDSite], DeploymentException 
FullyQualifiedErrorId : Microsoft.Web.Deployment.PowerShell.SyncSite 
ErrorDetails   : Der Parameter 'Web Application Physical Path Parameter' wurde bereits definiert. 

InvocationInfo  : System.Management.Automation.InvocationInfo 
ScriptStackTrace  : bei <ScriptBlock>, C:\Users\Administrator\desktop\wdeploy.ps1: Zeile 245 
         bei <ScriptBlock>, C:\Users\Administrator\desktop\wdeploy.ps1: Zeile 232 
         bei <ScriptBlock>, <Keine Datei>: Zeile 1 
PipelineIterationInfo : {0, 1} 
+0

は '$名$の使用です名前は普通の2倍ですか? –

+0

@MickyBalladelliはい。最初はsource-sitenameで、2番目はdestination-sitenameです。 – SimonS

+0

'$ error [0] |を使用して完全なエラー情報を提供できますか? fl * -force'?あなたはまた私にドイツのメッセージを送ることができます:-) –

答えて

2

You mig回避方法としてSync-WDSiteの代わりにmsdeploy.exe -verb:syncを使用してください。

1

コメントの中で指摘したように、これはsync-wdsiteコマンドレット自体のバグです。私はそれをMicrosoftに報告し、このバグを修正することを願っています(私にはあまり信用できませんが)。私の問題に投票してください!

msdeploy.exe -verb=sync 
      -source:contentpath="Sitename", 
        computerName=https://Server:Port/msdeploy.axd?site=SITENAME, 
        userName=deploy, 
        password=PASSWORD, 
        authType=basic 
      -dest:contentpath="D:\inetpub\path",computerName=localhost 
      -allowUntrusted 

あなたはPowerShellの内部でこれを実行したい場合は、ような何か:サイトがエラーなしで展開しまった、このコマンドでhttps://windowsserver.uservoice.com/forums/301869-powershell/suggestions/15756139-web-deploy-snap-in-bug-report

$msdeployPath = 'C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe' 

[string[]]$msdeployFolderSyncArgs = @(
    "-verb:sync", 
    "-source:contentpath='Sitename', 
        computerName=https://Server:Port/msdeploy.axd?site=SITENAME, 
        userName=deploy, 
        password=PASSWORD, 
        authType=basic" 
    "-dest:contentpath='D:\inetpub\path',computerName=localhost 
     -allowUntrusted" 
) 

$iex = Invoke-Expression "$msdeployPath $msdeployFolderSyncArgs" 
関連する問題