2017-09-08 10 views
2

.NET Core 2 APIを作成してサーバーに公開しました。.NET Core 2 APIとホストをIISに公開

ファイル構造は正常な構造

通常のネットMVC構造に比べて非常に奇妙に見える私は

enter image description here

に精通していますそして、これが展開された.NET CORE 2 APIの構造であり、私は試してみて、にそのフォルダを変換する場合今

enter image description here

通常のASP.NETアプリケーションのようなアプリケーションは動作しません。

私はサーバにthe .NET Core Windows Server Hosting bundleをインストールしましたが、私はまだ何かが欠けています。

ここで、IISIntegrationを有効にするためにこのコードを追加しますか?

var host = new WebHostBuilder() 
    .UseKestrel() 
    .UseContentRoot(Directory.GetCurrentDirectory()) 
    .UseIISIntegration() 
    .UseStartup<Startup>() 
    .Build(); 
+0

私はこの指示に従い、問題なくセットアップできました。これを試しましたか? https://docs.microsoft.com/en-us/aspnet/core/publishing/iis – Shoban

答えて

2

このコードはProgram.csに入っていますが、既定のコードなので、既にそこにあるはずです。

ASP.NETコアファイル構造はMVC 5と異なるですが、.NET Core Hosting Runtimeをインストールすると、ほぼ同じように動作します。公開されたファイルをWebサーバー上のディレクトリにドロップします。次に、そのディレクトリを使用するようにIISでサイトを設定します。わずかに異なるのは、特定の.NETランタイムではなく、アプリケーションプールを編集して「マネージコードなし」に設定する必要があることだけです。それ以外は、すべてうまくいくはずです。

しかし、あなたのスクリーンショットがファイルの完全なリストである場合、いくつかのものが欠落しているようです。ある時点で公開プロセスが失敗する可能性があります。再発行してみてください。

ASP.NETコアが動作する方法

背景には、以前のASP.NET Webアプリケーションとは根本的に異なっています。従来は、すべてのHTTPモジュールを使用していましたが、マシンにインストールされているモノリシック.NETランタイムからのものですが、ASP.NET Coreアプリケーションは完全に自己完結しています。実際、コアアプリケーションは単なるコンソールアプリケーションです。 IISの設定では、実際のWebサーバーはKestrelです.Kestrelは、コアアプリケーションにバンドルされているか、.NET Coreランタイムから利用可能です。 IISはリバースプロキシとして機能します。 Kestrelへのリクエストを引き渡して、それがKestrelからの応答を返します(したがって、 "管理されていないコード")。 IISの展開では、アプリケーションはDLLですが、完全に自己完結型で、実行可能ファイルとして展開することもできます。ポイントは、基本的には別の方法で動作するため、ファイルの構造などは非常に異なるということです。

+0

プロジェクトをビルドするときに自動公開することはできますか?プロジェクトをビルドするときに公開された最新の変更を見ることができますか? –

+0

Visual Studioではなく、あなたが記述していることを自動リリースと呼びます。これを処理する多くのサードパーティアプリケーションがあります。最も多かったのはOctopus DeployとVSTSです。 –

+0

一般的に言えば、ソースをコミットすると、自動的にビルドが開始されます。ビルドが完了すると、成果物はどこに行くべきかに配備されます。しかし、あなたが選んだ自動化されたソリューションでビルド/デプロイメントスクリプトを使って、これらすべてを設定する必要があります。 –

関連する問題