misc.log

日常茶飯事とお仕事と

IIS 8.0 + .NET Framework 4.5でASP.NETアプリを配置してみる

Visual Studio 2012 + .NET Framework 4.5で作成したASP.NETアプリを、Windows Server 2012上で稼働するIIS 8.0の環境に配置してみたい…のですが、なかなか上手くいきません。

配置用ファイル一式の用意

Visual Studio 2012には、Webサーバーと連携して一式の配置をGUIから行う機能もあるようなのですが、訳あって「ファイルをベタでコピーする」方式を試してみます。正解かどうかはわからないのですが……

ソリューションエクスプローラーから、プロジェクトを右クリックして「発行」を選択します。

f:id:frontline:20131021001323j:plain

その先、「Webを発行」画面が表示されるので、「発行プロファイルを選択またはインポート」の下にあるドロップダウンから<新規>を選び、発行設定に適当な名前をつけます。

次に表示される画面で、「発行方法」から「ファイルシステム」を選択。「ターゲットの場所」欄に配置用ファイル一式を起きたい場所を指定し、「発行」を押すと、指定したフォルダに配置用ファイル一式が用意されます。

これをIISに指定した物理フォルダにコピーすれば……いいはず。

HTTPエラー 500.19が出る

やってみました。別のPCからアクセスすると、「500 - 内部サーバー エラーです」が表示されます。一方で、サーバー上でIIS管理画面からアプリを配置するサイトを右クリック→「Webサイトの管理」→「参照」を選択。サーバー上でIEを起動して見てみると……

f:id:frontline:20131021001937j:plain

HTTPエラー 500.19 - Internal Server Error
ページに関連する構成データが無効であるため、要求されたページにアクセスできません。

となります。あらら。エラーメッセージページの下部、「構成エラー」のところには

アクセス許可がないため構成ファイルを読み取ることができません。

と出ています。もしかして何か権限の設定が足りていない??ということで検索してみて、下記のサイトを見つけました。

アクセス許可がないため構成ファイルを読み取ることができません/Remember The Time
http://ts-blg.blogspot.jp/2012/04/iis.html
IIS 7.0 でホストされている Web サイトにアクセスすると、エラー メッセージ「HTTP エラー 500.19-内部サーバー エラー」(MSKB942055)
http://support.microsoft.com/kb/942055/ja

MSのサイト、真ん中よりちょっと下に記載されている「解決方法 2 / 方法2」が使えるのではないでしょうか?試してみます。

IISが動くサーバー上で、ASP.NETアプリ用として用意した物理フォルダのプロパティから、セキュリティタブを選んでフルコントロールのユーザーとして「IIS_ISUSRS」を追加します。

f:id:frontline:20131021002643j:plain

うごいた

ちょっと引っかかりましたが、なんとか動きました。引っかかったところは……既定のファイル設定が「Default.aspx」になっていなかったので、ページのファイル名まで指定しないと「HTTP エラー 401.3 - Unauthorized」が発生してしまったことです。

とりあえず、ページ名までURL欄に入力すれば動きました。サーバー上からも、別PCからもASP.NETのアプリ画面が表示され、さらにSQL Serverからのデータ読み取りもできています。

なるほど、これで配置ができるわけですね……。とりあえず「作成~配置」まではやってみられたので、あとはASP.NETそのものの機能と、ASP.NETでのAJAXでできることの確認ですね…。

プログラミングMicrosoft ASP.NET 4 (マイクロソフト公式解説書)

プログラミングMicrosoft ASP.NET 4 (マイクロソフト公式解説書)

Professional Microsoft IIS 8

Professional Microsoft IIS 8