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を選んだせいでこういった制約が出てきてしまうとは・・・といった感じですが何とか回避できて良かったです。とっととコードを書いて動かせるものを作らなければ・・・