Windows 10でIIS(ASP.net)の実行環境を整えました
はじめに
今回は、ローカルネットワーク内で使用できるIISの実行環境を構築してみたので、そのことについて書いてみたいと思います。前回記事と異なるのは、サーバのOSが「Windows Server」ではなく「Windows 10」であるということです。
手順
IISの有効化
「コントロールパネル」の「プログラム」から「Windowsの機能の有効化または無効化」を選択。そこに表示される「インターネットインフォメーションサービス」を展開し、チェックを入れていきます。どれをチェックするかは自由ですが「IIS管理コンソール」にはチェックを入れておきましょう。
IISが有効化できれば、このようにブラウザでlocalhostにアクセスすればIISのテストページが確認できると思います。
ファイアウォールの設定
Windowsでは標準でファイアウォールが80のポートを遮断してしまうので、これを開きます。「World Wide Webサービス(HTTP)」のプライベートにチェックを入れます。
こうすることで、プライベートネットワーク(ローカルネットワーク)内からのアクセスを許可することができます。チェックを入れるとローカルネットワーク内のパソコンからIP直打ちでIISのテストページにアクセスすることができます。
デプロイの方法
Windows 10を使用する上での問題点
AWSではネットワーク経由でのデプロイを実現するためにManagement Serviceというのを開きリモート接続を有効にしましたが、Server版でないWindowsではその機能が封じられてしまっているため、有効化できないみたいです。
回避策
もうこれは仕方ないので、Web Deploy以外の方法を考えます。Visual StudioではWeb DeployのほかにFTPやFile SystemへのDeployを行うことができます。 今回はFile SystemへのDeploy機能を使用してリモートDeployを実現してみたいと思います。
まずは、Webサイトのルートディレクトリを共有する設定にします。共有するユーザは最小限で管理者アカウントを設定しておけばよいでしょう。
次に、そのフォルダにネットワークドライブを割り当てます。私はProductの意味をこめてPドライブにしてみました(正直なんでもいい)。そうすることで共有したルートディレクトリからPドライブへエイリアスすることが可能で、ここにファイルを置くと即座にサーバのディレクトリへ反映されます。
これを利用して発行の設定を書きます。
これだけです。
アクセスできない問題発生
ここで、wwwrootを共有フォルダにしたためか、ブラウザ経由ではページにアクセスできなくなってしまいます。これについては偽装ユーザで対処します。こうすることでIIS経由のファイルアクセスは設定したユーザアカウントで実行されるようになるので、アクセス権限の問題はクリアできるはずです。
終わりに
まさかOSにWindowsを選んだせいでこういった制約が出てきてしまうとは・・・といった感じですが何とか回避できて良かったです。とっととコードを書いて動かせるものを作らなければ・・・
遅ればせながらAWSに挑戦(その2)
はじめに
AWSぐらい扱えなくてどうすんねん!ってことで始めたはいいものの、その1でずっと止まっていました。今回はASP.netをデプロイするにはどういった手順を踏むのかということでVisual Studioを使ってデプロイ(発行)するところまで調べてみました。
手順
IISの有効化
Add Roles and Features Wizardで、Server RoleとしてIISを追加します。ここで重要なのが「IIS Management Console」「Management Service」にちゃんとチェックをいれておくということです。
IISが有効になったことを確認する。
Edgeで「localhost」にアクセスします。IISが有効になっていればデフォルトのページが開くはずです。
リモート管理を有効にする
Visual Studioからのデプロイを有効にするには「WebDeploy」をインストールします。これはググればマイクロソフトのページが出てくるのでそれをダウンロードしてインストールします。(私はバージョン3.6をインストールしました)
次に、IISマネージャを開き、中のManagement Serviceを開きます。ここにはリモート接続で使用するポートが記載されているので覚えておきましょう。Enable remote connectionsにチェックが入っていない場合は入れます。
そして今度はインスタンスが所属するセキュリティグループの設定を変更してリモート接続を許可します。AWSコンソールで、以下のように設定しました。
デプロイしてみる
今回はとりあえずDefault Web Siteにデプロイしてみます。VisualStudioで適当に作ったプロジェクトで、「ビルド」→「○○の発行」から出てくるこのようなダイアログを埋めます。
ここで大切なのが、Site nameに指定するモノが、実際にサーバに存在するサイト名でないといけないということです。「Default Web Site」と正しくタイプしなければValidate Connectionに失敗します。
デプロイに成功したら、このようにAWSのインスタンスのパブリックIPをタイプしてあげればこちら側からアクセスできるようになったのが確認できると思います。
おわりに
以上で、一通りデプロイできるようになりました。今後はデータベースを使用するなど実用する際に必要になることを学習したいと思います。