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
<?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>
```
_参考_
- [.NET Frameworkを対象とするASP.NETコア](https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-2.0#aspnet-core-targeting-net-framework)
- [.NET Core アプリケーションの展開](https://docs.microsoft.com/ja-jp/dotnet/core/deploying/index)
- [Common errors reference for Azure App Service and IIS with ASP.NET Core](https://docs.microsoft.com/ja-jp/aspnet/core/host-and-deploy/azure-iis-errors-reference?view=aspnetcore-2.0)
コメント
コメントを投稿