0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

BlazorをIISにホストするまで ~SQLiteは移行できない~

Last updated at Posted at 2022-05-03

この記事は

下記の記事のつづきで、つくったBlazorアプリをローカルIISにホストするまでを記す

この記事で書かれていることを安易に本番環境で行うことはキケンです

最後、おまけでホストしたサイトにiPhoneからアクセスする

IISを有効化

コントロールパネルから「Windowsの機能の有効化」をする

本当にどれが必要なものかわからないので(!)、.NET5 Blazorで関連しそうなものを入れておく

image.png

参考:Windows 10 での IIS および必要な IIS コンポーネントの有効化

IISを再起動

管理者権限でcmd.exeを起動して、iisresetを実行する

C:\WINDOWS\system32>iisreset

停止中...
インターネット サービスは正常に停止されました
開始中...
インターネット サービスは正常に再開されました

アプリを配置する物理パス(空のフォルダ)をつくる

Dドライブに空のフォルダをつくる

"D:\IIS\Blazor Site"

ウェブサイトを追加する

IISマネージャーを開き、Webサイトを追加する

image.png

任意のサイト名を入力し、物理パスには先ほどつくった空のフォルダーを指定する

ポートは8000や8080など、それっぽい番号にしておく

image.png

追加されたあとの様子

image.png

サーバープロジェクトを発行する

Visual Studioでサーバープロジェクトを「発行」する

発行を行うときはVisual Studioを管理者権限で開く必要がある

image.png

サーバープロジェクトを右クリックして、発行(B)を選択する

image.png

接続

サーバーはlocalhostを入力する

Site name:には。あらかじめIISでつくっておいたWebサイトの名前を入力する

image.png

設定

EFCoreのDbContextも自動的に検出してくれるけれども
デフォルトだとプルダウンメニューの1番上が選択されているっぽいので
適切な接続文字列を自分で選択し直す

image.png

参考:Blazor WebAssembly で作成したアプリを IIS に配置する

発行

3つのプロジェクトがReleaseビルドされる

image.png

SQLiteの移行が原因で失敗

Generating idempotent scripts for migration is not currently supported by SQLite. For more information,

SQLiteは本番環境へのマイグレーションをサポートしてないらしい

.dbファイルは手元にあるので、マイグレーションは不要と考え、移行のチェックを外して再発行する

image.png

成功

移行のチェックを外して成功した

image.png

発行後のIISマネージャー

フォルダがたくさん追加されている

image.png

localhost:8000にアクセスする

見覚えがあるいつものサイトが表示された🙌

image.png

だがしかし、DBにアクセスできない!

APIをたたくとこんなページが↓↓

もっとよく知りたきゃ開発者モードでアクセスしてきなさい、とのこと

image.png

構成をDevelopmentにする

IISマネージャーの構成エディターを開き、セクションプルダウンからaspNetCoreを選択する

environmentVariable ASPNETCORE_ENVIRONMENTキーの値をDevelopmentにする

image.png

SQLiteのエラーメッセージ

「TodoItemsなんてテーブル存在しませんよ」とのこと

image.png

発行先("D:\IIS\Blazor Site")には確かに.dbファイルがあるけれども、移行していないから中身が空っぽだった😂

(DBブラウザで中身をみたら、やっぱり空っぽだった)

image.png

開発中につかっていた.dbで上書きする

プロジェクトのフォルダーから.dbをコピーして、ホストしたフォルダーにペーストするだけ

無事、ToDoリストが表示された🙌

image.png

SQLiteのデータベースファイルと同様に、たとえばCSVファイルなんかもコピペでIISホストディレクトリに置きなおせるから、いろいろ簡単

おわりに

サーバーレス時代、AzureかAWSのアカウント取得してやれって話

おまけ(iPhoneからの接続)

ファイヤーウォールの「受信の規則」から8000ポートを開放して
iPhoneからローカルIPアドレス:8000にアクセスしたときのようす

image.png

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?