2

タイトルからわかるように、リモート IIS への展開で問題が発生しています。これが私がこれまでに行ったことです:

  • Windows Server 2008 で IIS7 を実行する仮想マシンをセットアップしました。
  • VM ネットワーク アダプタをブリッジしました。
  • 「Web 配置エージェント サービス」と「Web 管理サービス」をインストールして開始しました。

  • また、新しい IIS マネージャー ユーザーを作成し、問題の Web サイトへのアクセスを許可しました。

ローカル管理者と iisman の両方が、デプロイ先のサイトにアクセスできる

たとえば、次のようにすると、展開自体が機能します。

msbuild D:\Path\ToProject\DeployVariation01\DeployVariation01.csproj
        /p:Configuration=Debug;
        Platform=AnyCpu;
        DeployOnBuild=true;
        DeployTarget=MSDeployPublish;
        MSDeployServiceURL="Some.IP.-.Address";
        DeployIisAppPath="DeployAppDebug/DeployThis";
        MSDeployPublishMethod=WMSVC;
        AllowUntrustedCertificate=true;
        Username=Administrator;
        password=<thinkOfAPassword>

その後、アプリケーションがデプロイされ、ブラウザーから呼び出すことができます。

更新: このコマンドでも機能するため、msdeploy Web サービスにアクセスできるかどうかという James Woolfenden の質問に答える必要があります。

msbuild D:\Path\ToProject\DeployVariation01\DeployVariation01.csproj
        /p:Configuration=Debug;
        Platform=AnyCpu;
        DeployOnBuild=true;
        DeployTarget=MSDeployPublish;
        MSDeployServiceURL="https://some.ip.-.address:8172/MsDeploy.axd;
        DeployIisAppPath="DeployAppDebug/DeployThis";
        MSDeployPublishMethod=WMSVC;
        AllowUntrustedCertificate=true;
        Username=Administrator;
        password=<thinkOfAPassword>

しかし、私はPackageWeb-Approachを使用したいと考えています (ここでも説明されています)。
そこで、デプロイしたい Visual Studio 2012 から WebDeploy-Package を作成します。これを展開することも、ローカル コンピューターで実行できるようになっているため、通常は問題ないようです。

ローカルの IIS と VM の IIS の両方が同じ WebSite-Structure を持っているため、Publish-Interactive.ps1-script を呼び出すときに「コンピューター名」、「ユーザー名」、および「パスワード」を変更する必要があります。それを機能させるために注文しますが、それを行うとエラーメッセージが表示され続けます

Could not connect to the remote computer ("Some.IP.-.Address")
On the remote computer, make sure that Web Deploy is installed and that the required process ("Web Management Service") is started.  Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE.)

しかし、私は実際には WebPlatformInstaller を介して Web Deploy をインストールしており、Web 管理サービスが実行されているため、混乱します。また、ホスト マシンから VM に ping を実行しようとしましたが、うまくいきました。テスト目的で、VM のファイアウォールも完全にオフにしました。

すべてのファイアウォール プロファイルがオフになっています

しかし、それでも同じエラーメッセージが表示されます。

誰かが私を正しい方向に導くことができますか? 私は何が欠けていますか?

4

1 に答える 1

1

ここで発生している問題は、サーバー構成、サービス アカウント、またはリモート マシンのその他のアカウント構成とは何の関係もないことが判明しました。

サービスは正常に機能します。

スクリプトを間違った方法でセットアップしたか、正しく機能していないようです。スクリプトの実行を調べたところ、最後にこのコマンドが作成され、実行しようとしたことがわかりました。

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"
    -verb:sync -source:archiveDir="C:\Users\someName\AppData\Local\Temp\DeployDBVariantion00_zip" 
    -dest:auto,includeAcls='False',ComputerName='some.ip-.address?site=DeployApp/DeployThis',Username=someOtherName,Password=haveAnotherGuess,AuthType='BASIC'
    -disableLink:AppPoolExtension
    -disableLink:ContentExtension
    -disableLink:CertificateExtension
    -setParamFile:"C:\Users\someName\AppData\Local\Temp\DeployDBVariantion00_zip\SetParameters.xml" 
    -skip:objectName=dirPath,absolutePath="_Deploy_"
    -skip:objectName=filePath,absolutePath=web\..*\.config
    -skip:objectName=dirPath,absolutePath=_Package
    -skip:objectName=filePath,absolutePath=.*\.wpp\.targets$
    -allowUntrusted

ただし、このコマンドを機能させるには、ComputerName-Parameter にターゲット サービスへの完全なアドレスを含める必要があり、IIS サイトの下のアプリケーション名を含めてはならないため、これを少し変更します。

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"
    -verb:sync
    -source:archiveDir="C:\Users\someName\AppData\Local\Temp\DeployDBVariantion00_zip" 
    -dest:auto,includeAcls='False',ComputerName='https://some.ip.-.address:8172/msdeploy.axd?site=DeployApp',Username=someOtherName,Password=haveAnotherGuess,AuthType='BASIC'
    -disableLink:AppPoolExtension
    -disableLink:ContentExtension
    -disableLink:CertificateExtension
    -setParamFile:"C:\Users\someName\AppData\Local\Temp\DeployDBVariantion00_zip\SetParameters.xml"
    -skip:objectName=dirPath,absolutePath="_Deploy_"
    -skip:objectName=filePath,absolutePath=web\..*\.config
    -skip:objectName=dirPath,absolutePath=_Package
    -skip:objectName=filePath,absolutePath=.*\.wpp\.targets$
    -allowUntrusted

次に、リモート マシンに展開する実際の作業を行いました。私の問題は、サーバー構成の問題からスクリプト構成の問題に変わったため、ここにも詳しく投稿しました;)

于 2013-05-30T13:41:43.323 に答える