Skip to content

Latest commit

 

History

History
122 lines (102 loc) · 5.64 KB

File metadata and controls

122 lines (102 loc) · 5.64 KB

Webサーバーへデプロイする

Web アプリ(Blazor の Server プロジェクト)を Web サーバーでホストする場合、サーバー側に Microsoft Edge WebView2 ランタイムは不要です。 ただし、Windows Server 上で WPF / WinForms 版のクライアントアプリデザイナ を動かす場合は別途 WebView2 ランタイムのインストールが必要です(Windows Server は標準では未搭載)。詳細は Visual Studio ソリューションおよびデプロイ — デプロイ先 PC の前提 を参照してください。

Visual Studioで発行してサーバーへデプロイ

プロジェクト名.Serverプロジェクトを右クリックして、「発行」を実行します

画面の指示ににしたがって発行設定します

直接にサーバーへ発行するオプションもありますが、ここではフォルダを選び、のちにサーバーへコピーするとします。

「発行」ボタンを押して、発行ファイルを「ターゲットの場所」へ保存します

これでデプロイに必要なファイルがビルドされ、指定の場所に保存されます。 また、この画面でターゲットランタイム等の設定も可能です。ここでの説明は省略します。

デプロイファイルをサーバーの物理パスへコピーします

サーバーの種類によってコピー先は異なります。サーバーのドキュメントをご参照ください。

サーバー設定

デザインプロジェクトの場所、ConnectionString、画像等のファイル保存場所の設定が必要になります。 設定方法はデプロイ先のサーバーの種類によってことなりますが、おおよそ2種類あります。

また、Pathを記入する際にサーバー上のファイルシステム絶対パス例:C:\\Deploy\\Data、サーバーでの相対パス例:wwwroot/Data/Designがあります。相対パスの場合は、上記Publishフォルダをルートとします。

1. appsettings.jsonでの設定

DesignFileDirectory設定(モジュール、サイドバー等のデータの場所、必須)

  "DesignFileDirectory": "wwwroot/serverdata/Designs",

DataSources及びConnectionsStringsの設定(データベースを使用する場合)

  "DataSources": [
    {
      "Name": "SampleSQLite",
      "DataSourceType": "SQLite"
    }
  ],
  "ConnectionStrings": {
    "Main": "",
    "SampleSQLite": "Data Source=wwwroot/serverdata/Data/sqlite_sample.db;Version=3;"
  }

FileStorages設定(追加写真等のファイルを使用する場合)

"FileStorages": [
  {
    "Name": "Local",
    "FileStorageType": "FileSystem",
    "Directory": "wwwroot/serverdata/Storages"
  }
]

2. サーバー側での設定

appsettings.jsonに上記の一部の設定を置かずにサーバー側で設定する場合もあります。下記例をもって説明します。

サーバー設定例

IIS

デプロイフォルダをIISの物理パスへコピーした後、DesignFileDirectory及びConnectionStringをIISの環境変数へ登録する場合は下図のように設定します。

ターゲットサイト → 構成エディター → セッション:System.webServer/aspNetCore → environmentVariables

Nginx (Linux)

Nginx, Asp.NET Coreのruntime等はインストール済みの環境とします。

1. 上記「発行」されたフォルダpublishをLinuxの/var/www/にコピーします。

2. Designerがデプロイしたファイル: デフォルトとして開発機のC:\Codeer.LowCode.Blazor.Local下にあるファイルを/var/www/publish/wwwroot/serverdataにコピーします。

この際はappsettings.jsonでも "DesignFileDirectory": "wwwroot/serverdata/Designs",になっていることを確認します。 コピー後はフォルダーに適宜なアクセス権限を設定してください。

3. 発行されたアプリのdllを実行するためのサービスを作成します。この例ではMyLowCodeApp.Server.dll

sudo nano /etc/systemd/system/blazorapp.service
[Unit]
Description=BlazorApp

[Service]
WorkingDirectory=/var/www/publish
ExecStart=/usr/bin/dotnet /var/www/publish/MyLowCodeApp.Server.dll
Restart=always
RestartSec=10
SyslogIdentifier=blazorapp
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target

4. Nginxの設定ファイルを変更します

sudo nano /etc/nginx/sites-available/default

ここでの設定変更は最小限としています。 BlazorのNginxの設定についてはマイクロソフトのドキュメントをご参考ください。

server {
        listen 80 default_server;
        index index.html index.htm index.nginx-debian.html;
        server_name _;

        location / {
                try_files $uri $uri/ /index.html =404;
                proxy_pass http://localhost:5000;
        }
}

5. BlazorAppのサービスを起動し、Nginxを再起動して完了です

sudo systemctl start blazorapp
sudo systemctl enable blazorapp

sudo systemctl restart nginx

これでNginxの80ポートを経由してBlazorAppをアクセスできます。