7

MicrosoftがIIS8.0の一部としてアプリケーションの初期化をリリースしたようです。残念ながら、デフォルトではWebロールで有効になっていません。(つまり、Webサーバーの役割の機能としての「アプリケーションの初期化」が有効になっていません。Webの役割にIIS 8があることはわかっています。)

スタートアップスクリプトからこれを有効にする方法を知っている人はいますか?すでにいくつかの起動スクリプトを作成しましたが、サーバーの役割機能を追加する方法がわかりません。

モジュール自体は、サーバーマネージャー内の[サーバーの役割]-> [Webサーバー(IIS)]->[Webサーバー]->[アプリケーション開発]->[アプリケーションの初期化]の下に表示されます。

これは非常に便利なので、デフォルトで有効になっていないのは残念です。

ありがとう

クリス

4

2 に答える 2

19

まず、スタートアップ タスクを使用して機能をインストールする必要があります。

PKGMGR.EXE /iu:IIS-ApplicationInit

次に、IIS でサイトを構成する必要があります ( startModeおよびpreloadEnabled )。

public class WebRole : RoleEntryPoint
{
    public override void Run()
    {
        using (var serverManager = new ServerManager())
        {
            var mainSite = serverManager.Sites[RoleEnvironment.CurrentRoleInstance.Id + "_Web"];
            var mainApplication = mainSite.Applications["/"];
            mainApplication["preloadEnabled"] = true;

            var mainApplicationPool = serverManager.ApplicationPools[mainApplication.ApplicationPoolName];
            mainApplicationPool["startMode"] = "AlwaysRunning";

            serverManager.CommitChanges();
        }

        base.Run();
    }

    public override bool OnStart()
    {
        // For information on handling configuration changes
        // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.

        return base.OnStart();
    }
}

私はこれについてブログ記事を書きました。GitHub でサンプル アプリケーションを見つけることができます。

于 2012-11-06T00:20:48.183 に答える
0

Webロールには、IIS8.0が絶対にインストールされています。WebロールをOSVersion=3に変更すると、IIS8.0を使用するWindowsServer2012イメージにアプリが展開されます。

VM(Azure IaaS)を意味する場合は?私が行うことは、Windows Server 2012から開始し、リモートデスクトップをインストールし、必要に応じてコアサーバーをインストールし、sysprepを実行して、イメージをキャプチャすることです。このようにして、AzureImageGalleryで再利用できます。次に、IIS 8.0がすでにセットアップ/インストールされているなど、このベースイメージから多くのVMを起動できます。

于 2012-11-05T17:59:04.843 に答える