Visual Studio2017で.NETCore MVCアプリをセットアップして、完全なIIS(IIS Expressではない)を使用する

ニコ

Visual Studio 2015では、プロジェクトを右クリックしてプロパティに移動することで、完全なIISを使用するようにMVCアプリを簡単に設定できます。

Visual Studio2017のバニラ.NETCore Web(MVC)プロジェクトでこれを行う方法は明確ではありません。

私はグーグルでこれについて何も見つけることができません-私は間違った場所を探していますか?

Stan88

iisの背後でホストできます。

iisをオフコースにインストールする以外に、基本的に4つのことを行う必要があります。

  1. .NET Core WindowsServerホスティングバンドルをインストールします。ここで見つけることができますhttps://go.microsoft.com/fwlink/?linkid=837808

  2. Microsoft.AspNetCore.Server.IISIntegrationパッケージへの依存関係をアプリケーションの依存関係に含めます。.UseIISIntegration()拡張メソッドをWebHostBuilder()に追加して、IIS統合ミドルウェアをアプリケーションに組み込みます。

  3. cmdを開き、プロジェクトでdotnetpublishを実行します

  4. iisで公開されたアプリケーションをホストします。アプリケーションプールで、.NETCLRバージョンを「マネージコードなし」に設定することが重要です。

アプリケーションをiisに公開する方法に関するより詳細な記事があります。

https://docs.microsoft.com/en-us/aspnet/core/publishing/iis

Visual Studio2017から直接それを行う方法が見つかりませんでした。

更新: FlubuCoreツール(C#fluent builder)を使用して、手順3と4を自動的に実行できます。次のようなflubuスクリプトを作成する必要があります(例はステップ4のみです)。

protected override void ConfigureTargets(ITaskContext session)
{
    session.CreateTarget("iis.install").Do(IisInstall);
}

private static void IisInstall(ITaskContext context)
{
    context.Tasks().IisTasks()
        .CreateAppPoolTask("SomeAppPoolName")
        .ManagedRuntimeVersion("No Managed Code")
        .Mode(CreateApplicationPoolMode.DoNothingIfExists)
        .Execute(context);

    context.Tasks().IisTasks()
        .CreateWebsiteTask()
        .WebsiteName("SomeWebSiteName")
        .BindingProtocol("Http")
        .Port(2000)
        .PhysicalPath("SomePhysicalPath")
        .ApplicationPoolName("SomeAppPoolName")
        .WebsiteMode(CreateWebApplicationMode.DoNothingIfExists)
        .Execute(context);
}

次に、それをVisual Studio 2017と統合するには、コマンド「dotnet flubu iis.install」を使用して、ビルド前またはビルド後のイベントでflubu dotnetcliツールを使用してこのスクリプトを実行します。コマンドラインから明示的にツールを実行したいです。

flubuの詳細と開始方法については、こちらをご覧ください:ビルドツールの選択:MSBuild、NANT、またはその他?

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ