4

問題/質問

redgate 展開用のスクリプトの実行をテストしています。最後のステップで、Web サイトを開始します。

import-module WebAdministration
$website = get-website | where-object { $_.name -eq $RedGateWebSiteName }

#(re)write HostName#
$binding = Get-WebBinding -Name $RedGateWebSiteName 
Set-WebBinding -Name $RedGateWebSiteName  -BindingInformation "*:80:*" -PropertyName HostHeader -Value $HostName 

if ($website) {
    Start-Website "$RedGateWebSiteName"
}

常に機能していましたが、最後の日にこのエラーが発生しました

At D:\inetpub\Timeblockr-RedGate\Api\PostDeploy.ps1:15 char:15
+     Start-Website <<<<  "$RedGateWebSiteName"
    + CategoryInfo          : InvalidOperation: (:) [Start-Website], COMException
    + FullyQualifiedErrorId : InvalidOperation,Microsoft.IIs.PowerShell.Provider.StartWebsiteCommand

IIS エラー

The World Wide Web Publishing Service (WWW Service) did not register the URL prefix http://*:80/ for site 3. The necessary network binding may already be in use. The site has been disabled. The data field contains the error number.

PowershellでStart-Websiteコマンドを実行すると、このSOの質問「ファイルを作成できません」というエラーが発生し、それが何であるかについてかなり良い手がかりが得られます。


編集:

イベント ログを表示して回答を確認したところ、Redgate が Web サイトを自動的にインストール/開始しようとすると、次の IIS エラーが発生することがわかりました。

The World Wide Web Publishing Service (WWW Service) did not register the URL prefix http://*:80/ for site 3. The necessary network binding may already be in use. The site has been disabled. The data field contains the error number.

このServerfaultでは:https://serverfault.com/questions/456217/the-world-wide-web-publishing-service-www-service-did-not-register-the-url誰かがその原因がIIS Web サイトがホストヘッダーなしで作成されること。ウェブサイトを起動しようとした後、ホストヘッダーを追加しています。解決策を見つけよう

編集 2: Web サイトを開始しようとした後、ホスト名を追加していました。これにより、Web サイトのホスト名が空になり、IIS で競合が発生します。(または他の場所)。ウェブサイトを取得し、ホスト名を追加してからウェブサイトを開始するようにスクリプトを変更しました。また、「今すぐ完全に動作します! 」$RedgateWebsiteName"の代わりに「」を追加しました。$RedGateWebSiteName.

編集 3: テストの実行後、同じエラーが発生するようです。1 つのデプロイには問題はありませんが、もう 1 つのデプロイには問題があります。

編集 4: スクリプト/エラー/投稿を更新しました。インストールをクリックした後、IIS からサイトを削除しました。完全にインストール - 問題なし、自動起動。2 回目の実行はまったく同じで、3 回目の実行では上記のエラーが発生します。

4

3 に答える 3

1

Web サイトを開始するためにスクリプトが必要なのはなぜですか? Red Gate Deployment Manager を使用している場合、Web パッケージ (web.config ファイルを含む任意のパッケージ) のデプロイ後に Web サイトが開始されます。

$RedGateWebSiteName の値の置換が行われていない可能性があり、おそらく二重引用符が必要です。

開始 Web サイト "$RedGateWebSiteName"

あなたのエラーメッセージがこれを言っているので、私はこれを言います:

開始 Web サイト <<<< $RedGateWebSiteName

ここでのエラー メッセージには、置換された値が表示されます。

start-website <<<< "MyWebsite"

于 2014-01-13T16:45:34.243 に答える
1

$RedGateWebSiteName 変数には値が割り当てられていなかったと思います。ログ メッセージで変数がその値に置き換えられていると仮定します。グーグルで調べてみると、IIS の「ファイルは既に存在します」というメッセージは、IP アドレス バインディングの欠落か​​ら無効な仮想ディレクトリ フォルダへの何らかの原因で発生するため、誤っている可能性があるようです。

于 2014-01-10T14:24:12.290 に答える
0

次のようにWebサイトを開始したときに、まったく同じ問題が発生しました。

Start-Website -Name MyWebSiteName

そしてそれは始まりません。IIS マネージャーで手動で起動しようとしても起動せず、次のエラー メッセージが表示されました。

The World Wide Web Publishing Service (W3SVC) is stopped.  Websites cannot be started unless the World Wide Web Publishing Service (W3SVC) is running.

これは、サービスが開始されていないことは明らかであり、事実であることが判明しました。

于 2016-06-28T00:34:50.003 に答える