ASP.NET > aspcore2 > Windows Server にてAPS.NET Core2 アプリケーションをホストする


APS.NET Core2 アプリケーションをホストする

Visual Studioで ASP>NET Core webアプリを作成し、Windows ServerのIISで動かす事をめざします。

VisalStudioでアプリを作成

VisalStudioからAngularテンプレートを使ってアプリを作成します。

ちなみにIE11で動作可能にするにはcore-jsをpackage.jsonに設定する必要があります。
https://github.com/aspnet/JavaScriptServices/wiki/Supporting-Internet-Explorer-11-(or-older)

最初のデプロイ

VisalStudioからAngularテンプレートを使って作成したアプリを、Windows ServerのIISに置きました。

あぁ無情です。何のエラーなのかさっぱり分かりません。

Windows Serverでの環境構築

.NET Core実行環境の作成

.NET CoreのWindows Server Hosting (.exe) をダウンロード
https://www.microsoft.com/net/download/windows
インストールを実行します。(要OS再起動)

再度アクセスしてみます。

画面が変わりましたがエラーが表示されてしまいました。
しかしひとまずasp.net coreは動いているようです。

Error.
An error occurred while processing your request.

Development Mode

Swapping to Development environment will display more detailed information about the error that occurred.

Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application.

Most likely because I had the environment variable ASPNETCORE_ENVIRONMENT set to Development as seen in Figure 2.

↓この辺とかを参考にしましたが原因がよく分からず。
https://blogs.msdn.microsoft.com/benjaminperkins/2017/06/21/asp-net-core-with-entity-framework-core-aspnetcore_environment/

ASPNETCORE_ENVIRONMENT=Developmentになってるからこの画面が表示されているのでは?と解釈して試行錯誤するも原因掴めず。

よくよく内容を見てみると、エラーが起きているから、ASPNETCORE_ENVIRONMENT=Developmentにしてから確かめなさい。という意味でした。

ということで、web.configのaspNetCoreに以下の設定を追加

<aspNetCore processPath="dotnet" arguments=".\MarketingMetric.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" >
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>

再度実行

エラー内容が詳細に表示されました。
どうやらWindows Serverにnode.js環境が無い事が原因のようです。

Node.jsのインストール

ここを参考にさせていただきインストール
https://qiita.com/ksh-fthr/items/fc8b015a066a36a40dc2

nodistとnode.jsをインストールする
core2でangularテンプレートを実行するにはnode.jsがサーバーに必用な模様

再度実行

OSを再起動した後に無事にasp.net coreアプリケーションが実行できました。