Visual Studio ASP.NET ＋ IIS ＋ SQL Serverで、ローカル環境にWebアプリをデプロイ

初投稿です。
諸事情あり、タイトルの様に内輪のWebアプリをローカル環境にインストールする機会があったので、手順のご紹介です。
気を付けないと結構ハマる箇所があるので、そのあたりを共有できれば幸いです。

#この記事が実現したいこと
- Visual Stuidoで作成したASP.NETのアプリケーションを、デバッグ環境が入っていない環境で起動したい
- 起動したアプリは、そのパソコンからしか見られないようにしたい
- データベースソフトも使いたい
- 何でもいいからとにかく動かしたい！（きちんとした設定にはこの記事は不向きです。）

#使用するバージョン
- Microsoft Visual Studio Community 2019 Version 16.6.5
- Web Deploy v3.6
- Windows10
- SQL Server2019 15.0.2000.5, RTM
- Internet Information Services Version 10.0.18362.1

#手順1　IISの有効化
先ずはアプリケーションサーバーとなるIISを利用可能な状態にします。
（Windowsは標準の状態では無効化されているので、手動で起動する必要があります。）

コントロールパネル→プログラム→プログラムと機能→Windowsの機能の有効化または無効化、で、「インターネットインフォメーションサービス」（IIS）を有効化します。
↓の記事が詳しいので引用させていただきます。こちらで紹介されている通りの設定で問題ありません。

WINDOWS10にてIIS(WEBサーバー)をインストール・構成する方法
http://www.floatgarden.net/server/windows10_iis_server.html

#手順2　MS Web Deployをインストールする
VSのWebデプロイパッケージをインポートする為のコンポーネントをインストールします。
https://www.microsoft.com/ja-jp/download/details.aspx?id=43717

先頭のアイキャッチに別のプロダクトが出てくるので一瞬混乱しますが、下の方にダウンロードボタンがあります。
MSIファイルをダウンロードし、インストーラーに従って標準でインストールしましょう。
ちなみに、このステップを飛ばすと、後のステップでIISにWebサイトを展開する選択肢が出なくなり詰みます。

ここまでで、IIS側の設定はいったんOKです。

#手順3　Visual Studioで作成したWebアプリを発行する
プロジェクトを右クリックすると↓の画面に飛びますので、編集をクリック。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/611998/5432793e-97be-9a2d-6cad-7994b640bc8a.png)


設定画面が開くので、以下のように設定してください。
　・公開方法：Webデプロイパッケージ
　・パッケージの場所：（どこでもよい。パッケージを出力される場所を指定。）
　・サイト名：（URL表示名などになります。任意に決めてください。）
　・構成：Release
　・ファイル公開オプション：両方ともチェックオフ
　・XXXXContext：リモート接続文字列は空欄、チェックボックスは全てチェックオフ
※コードファーストでマイグレーションする場合はここで別途設定が必要ですが、今回は初回デプロイということでまたの機会にします。

以上に設定したら、保存をクリックしさっきの画面に戻り、発行ボタンをクリック。
成功すると、パッケージの場所で指定したところにいくつかファイルが出力されています。
今回は、出力ファイルの内、ZIPファイルだけ使います。

#手順4　IISにWebアプリをインポート
IISマネージャーを開きます。（Winowsの左下の検索窓からIISと入力するか、コントロールパネルから「管理ツール」→「インターネット インフォメーションサービス(IIS) マネージャ」を選択します。）
IISマネージャーの左の接続ペインから、サイト→Default Web Siteで右クリック→展開→アプリケーションのインポートを選択。
尚、Web Deployのインストールを飛ばしていると、ここで「展開」の選択肢が出ず詰むので要注意です。（大事なので二度目）

ファイル選択画面が出るので、手順3で生成したZIPファイルを選択しましょう。

![et5did.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/611998/316019c5-17bd-5089-d760-b2ee69c2e458.png)

次へを数回クリックすると接続文字列を設定する画面に行きます。
（ここでエラーが出る場合、右クリックをする場所を失敗している可能性大です。Default Web Siteをきちんと選択してから右クリックしてみましょう。）

接続文字列を入力して進むと、設定が完了します。

あとはポートの設定です。
IIS右側の操作ペインで　バインドを選択、追加をクリックしポート8000を入力、ホスト名は空欄でOKを押します。
（念の為、Webサーバーのポート番号は通常80番を使いますが、ここでは内部用の為、メールなどと衝突しなければ何でも大丈夫だと思います。）

また、同じく右側中段くらいのWebサイトの管理ペインで、もし開始状態になっていなかったら開始ボタンを押しておきましょう。
あとは、Default Web Siteの下に今回インポートしたウェブサイトがぶら下がっているはずなので選択し、指定したポート番号を参照してみましょう。
![9f0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/611998/a390664b-837f-32f8-8c87-6ac0401958cc.png)

ここまでの設定で、Webアプリが一応立ち上がるはずです。
但し、データベースに接続しようとするとエラーが出るはずです。これを乗り越えるのが、手順5~6です。

#手順5　SQL Serverのインストール
さて、後はデータベースの設定です。
https://www.microsoft.com/ja-jp/sql-server/sql-server-downloads
にアクセスし、Express版のインストーラーをダウンロードします。エディションの選定については別のドキュメントを参照していただければと思いますが、今回の様なローカルで動かすような場合はExpress版で十分なケースが多いのではないでしょうか。（容量制限などがあるので、用途によっては別途要検討です。）

SSMS（SQL Server Management Studio）も一緒にインストールしましょう。
https://docs.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
SQL Serverのインストーラーから誘導されると↑のMSのページに飛ばされます。
目立つところにあるURLは英語版のインストーラーなので、日本語版がほしい人は注意しましょう。
（「使用できる言語」というセクションに日本語リンクがあります。）。
今回は日本語版をインストールして進めます。

SSMSをインストール出来たら、スタートメニューから早速起動しましょう。
![s93klw.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/611998/be31a66b-06b7-0a52-6188-939217dde45e.png)

#手順6　WebアプリによるSQL Serverへのログイン許可設定
データベース側で分かりにくいのがこの部分だと思います。
IISのアプリケーションプール（簡単にはWebアプリのDB接続エージェントと考えていただければOKかと。）に対してSSMS側でログイン許可をする必要があります。

SSMSにWindows認証で接続し、インスタンス→セキュリティ→ログインで右クリック、「新しいログイン」を選択。
・ログイン名：IIS APPPOOL\DefaultAppPool
・セキュリティ保護可能なリソース：次の項目に許可をチェックを追加。SQLの接続、データベースの作成、データベースの変更
以上を設定してOK。

これで、Webアプリからデータベースにアクセスできるようになるはずです。

#設定は以上です。お疲れ様でした！
文字だらけな記事になってしまいましたが、誰かの役に立てばうれしく思います。