スキップしてメイン コンテンツに移動

ウイルネットの共用サーバーで ASP.NET Core アプリケーションを配置する

ASP.NET Core アプリケーションの対象フレームワークと展開方法を選択することで、ウイルネットの共用サーバーでもアプリケーションを配置することが可能です。

ASP.NET Core の対象フレームワークとは

  • ASP.NET Core の対象フレームワークは .NET Core または .NET Frameword を対象とすることができる
  • .NET Framework を対象とする場合は Windows のみで実行される

.NET Core アプリケーションの展開方法とは

  • フレームワーク依存 (FDD)
    展開先システムに存在するバージョンの .NET Core を使用して依存関係のみ展開する
  • 自己完結 (SCD)
    アプリケーションに必要なバージョンの .NET Core も含めて展開する

配置方法

共用サーバーが Windows サーバーの場合、対象フレームワークを .NET Framework にすることで問題なく配置できます。Windows サーバー以外の場合や、対象フレームワークを .NET Core にする場合は.NET Core アプリケーションの展開方法の選択が必要です。アプリケーションに必要なバージョンの .NET Core Runtime がサーバーに無い場合は SCD を選択し、それ以外の場合は依存関係を考慮して FDD か SCD どちらかで展開します。

ASP.NET Core アプリケーション展開後、起動エラーで次のように表示される場合は 'Need help?' リンク先のページに対処法が記載されています。

An error occurred while starting the application.

.NET Core 4.6.00001.0 X64 v4.0.0.0    |   Microsoft.AspNetCore.Hosting version 2.0.3-rtm-10026    |    Microsoft Windows 6.3.9600    |   Need help?

IIS でホストされる場合、展開直後はエラーログが出力されないため web.config を次のように修正します。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <!-- 展開直後は出力しないようになっている
    <aspNetCore processPath=".\アプリケーション名.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
    -->
    <!-- 出力先フォルダを設定する -->
    <aspNetCore processPath=".\アプリケーション名.exe" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

参考

コメント

このブログの人気の投稿