おはよう君需要なし

求不得苦な日々

Windows 10でIIS(ASP.net)の実行環境を整えました

はじめに

この記事ではAWS上でIISの実行環境を構築しました。

nodemand.hatenablog.com

今回は、ローカルネットワーク内で使用できるIISの実行環境を構築してみたので、そのことについて書いてみたいと思います。前回記事と異なるのは、サーバのOSが「Windows Server」ではなく「Windows 10」であるということです。

手順

IISの有効化

「コントロールパネル」の「プログラム」から「Windowsの機能の有効化または無効化」を選択。そこに表示される「インターネットインフォメーションサービス」を展開し、チェックを入れていきます。どれをチェックするかは自由ですが「IIS管理コンソール」にはチェックを入れておきましょう。

f:id:yoh_mar28:20170220204357p:plain

f:id:yoh_mar28:20170220204439p:plain

f:id:yoh_mar28:20170220204512p:plain

IISが有効化できれば、このようにブラウザでlocalhostにアクセスすればIISのテストページが確認できると思います。

f:id:yoh_mar28:20170220204608p:plain

ファイアウォールの設定

Windowsでは標準でファイアウォールが80のポートを遮断してしまうので、これを開きます。「World Wide Webサービス(HTTP)」のプライベートにチェックを入れます。

f:id:yoh_mar28:20170220204730p:plain

こうすることで、プライベートネットワーク(ローカルネットワーク)内からのアクセスを許可することができます。チェックを入れるとローカルネットワーク内のパソコンからIP直打ちでIISのテストページにアクセスすることができます。

f:id:yoh_mar28:20170220210451p:plain

デプロイの方法

Windows 10を使用する上での問題点

AWSではネットワーク経由でのデプロイを実現するためにManagement Serviceというのを開きリモート接続を有効にしましたが、Server版でないWindowsではその機能が封じられてしまっているため、有効化できないみたいです。

f:id:yoh_mar28:20170220210805p:plain

回避策

もうこれは仕方ないので、Web Deploy以外の方法を考えます。Visual StudioではWeb DeployのほかにFTPやFile SystemへのDeployを行うことができます。 今回はFile SystemへのDeploy機能を使用してリモートDeployを実現してみたいと思います。

まずは、Webサイトのルートディレクトリを共有する設定にします。共有するユーザは最小限で管理者アカウントを設定しておけばよいでしょう。

f:id:yoh_mar28:20170220211112p:plain

次に、そのフォルダにネットワークドライブを割り当てます。私はProductの意味をこめてPドライブにしてみました(正直なんでもいい)。そうすることで共有したルートディレクトリからPドライブへエイリアスすることが可能で、ここにファイルを置くと即座にサーバのディレクトリへ反映されます。

これを利用して発行の設定を書きます。

f:id:yoh_mar28:20170220211505p:plain

これだけです。

アクセスできない問題発生

ここで、wwwrootを共有フォルダにしたためか、ブラウザ経由ではページにアクセスできなくなってしまいます。これについては偽装ユーザで対処します。こうすることでIIS経由のファイルアクセスは設定したユーザアカウントで実行されるようになるので、アクセス権限の問題はクリアできるはずです。

f:id:yoh_mar28:20170220211637p:plain

終わりに

まさかOSにWindowsを選んだせいでこういった制約が出てきてしまうとは・・・といった感じですが何とか回避できて良かったです。とっととコードを書いて動かせるものを作らなければ・・・