QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

IISでASP.NETを動かす設定とは

サーバーのIISにASP.NETのプロジェクトを配置して、ローカルのVS.NETで編集したりデバッグしたり出来るようにするためのIISの設定がわかりません。

何かご存知の方、すでにこのことを実現している方の助言がいただきたいです。
お願いします。

■やったこと
私は次のようにやったのですがうまくいきません。
1.サーバー上にフォルダ(E:\IISWEB\とする)を作成
2.E:\IISWEB\をIISの仮想ディレクトリに設定(ServerName/IISWEB/)
3.E:\IISWEB\Test\フォルダを作成
4.IISでこのTestフォルダをWebアプリケーションとして設定
   ⇒[プロパティ]-[ディレクトリ]タブの[作成]ボタンをクリックした
5.同様にServerExtensionsの設定をした。
6.同様にServerExtensionsの確認をした。
7.ローカルでVS.NETのプロジェクの作成でVB.NETの[ASP.NET Webアプリケーション]を選択し、場所には http://ServerName/IISWEB/Test を指定して[OK]ボタンをクリック。
8.このとき次のメッセージがでる
***メッセージここから***
 このプロジェクトの既定のWebアクセスモードはファイルの共有に設定されていますが、'http://ServerName/IISWEB/Test'のプロジェクトフォルダのパス'\\ServerName\wwwroot$\IISWEB\Test'からは開けません。次のエラーが返されました。
Webプロジェクト 'IISWEB/Test'を作成できません。UNC共有'\ServerName$\IISWEB\Test'は存在しないか、またはアクセス許可がありません。
操作を選択してください。
◎別のファイル共有パスを使用して再試行
○FrontPage Server Extensions を使用してプロジェクトを開く
***メッセージここまで***
そこで、2番目のFrontPage Server Extensionを使用してプロジェクトを開くを選択
9.なお、この時点でサーバーのE:\IISWEB\Test\フォルダに手動で単純なASPファイルをコピーするとIEから http://ServerName/IISWEB/Test/Test.asp で正常に表示できることを確認。
10.VS.NETでWebForm1.aspxにボタンを1つ配置して、実行
11.このとき次のメッセージが出る
***メッセージここから***
プロジェクトを実行しようとしているときにエラーが発生しました:Webサーバーでデバッグを開始できません。デバッグHTTPリクエストの送信時に、サーバー側でエラーが発生しました。
サーバーが正常に機能していることを確認してください。デバッグなしでDebug.Startをして、web.configに構文エラーがないことを確認してください。また、オンラインドキュメントで、ASP.NETとATL Serverデバッグの項を参照することもできます。次回からこのプロジェクトのASP.NETページのデバッグを無効にしますか?
***メッセージここまで***
ここでは、「いいえ」を選択して、実行を中止
12.デバッグなしで開始をクリック
13.ブラウザが起動して、アドレズバーにはhttp://ServerName/IISWEB/Test/WebForm1.aspxと表示されているが、「HTTP500 内部サーバーエラー ページを表示できません 検索中のページには問題があるため表示できません。 」となる。
14.以上

■期待する結果

ブラウザで正常にASP.NETを実行できるようになりたい。そのために13のエラーがでないようにしたい。
デバッグが出来ない問題もありますが、とりあえずは実行できるようになることが先決です。

■備考
今までローカルのIISを利用してプログラムしていました。今回からサーバーのIISを利用してプログラムしようとしたらこの現象にぶつかりました。

どうか宜しくお願いします。
また、このような設定について解説しているいいリソース(本やWEBサイト)をご存知の方は教えていただけるとうれしいです。

長文で失礼しました。

■環境
サーバー Windows 2000 Server, IIS 5.0, .NET Framework
ローカル Windows 2000 Pro, VS.NET

質問者:rucio

回答

以下の文章は,リモート デバッグするための
必要条件ではなく,十分条件になっている
可能性が大です.私も,リモート デバッグ
するための必要条件が知りたいです.
経験的に .NET Framework のバージョンに
よって,必要条件が異なる筈です.

(1) サーバ側の
・Administrators
・Domain Admins
・Debugger Users
の権限を持ったアカウントでないと,
リモート デバッグまでできません.
(.NET Framework SP2 では,Debugger
Users は不必要かもしれません.
Debugger Users は,サーバ側に .NET
Framework "SDK" をインストールすると
作成されます).したがって,サーバ側で
Active Directory を構成し,クライアント
ではサーバ側のアカウントで VS.NET を
起動します.

(2) \WINNT\Microsoft.NET\Framework\v1.0.3705\CONFIG\machine.config
を編集します.具体的には,
要素 userName 属性の属性値を
"ドメイン\管理者権限を持つユーザ" に,
password 属性の属性値を "AutoGenerate"
から実際の userName で設定したユーザの
パスワードに変更します.

(3) VS.NET のセットアップ CD-ROM から,
「リモート コンポーネント セットアップ」を
選択し,「完全リモード デバッグ」を
インストールします.「ネイティブ リモード
デバッグ」ではおそらく不十分です.

うまくいきましたら,ぜひ必要条件をまとめて
下さい !

投稿者:XeCl

編集 履歴 (0)

XeClさん、ありがとうございます!
おかげで問題は解決しました。

■解決方法
・XeClさんご指摘の(2)の変更を施した
・XeClさんご指摘の(3)の変更を施した

■現状
ASP.NETアプリケーションは正常に実行でき、リモードデバッグもできるようになりました。

■備考
以下の場所にリモートデバッグのシステム要件を解説しているドキュメントを発見しました。

MSDNライブラリ(2002年4月号で確認)の
[.NET開発]-[Visual Studio .NET]-[製品ドキュメント]-[Visual Studio .NETによる開発]-[ビルド、デバッグ、およびテスト]-[デバッグ]-[スクリプトとWEBアプリケーションのデバッグ]-[ASP.NET WEBアプリケーションのデバッグ]-[システム要件]

それにして今回はXeClさんが助けてくれたのでよかったのですが、
サーバーの設定方法などに関する情報はいったいどこに記載されているのでしょうか?
ご存知の方いらっしゃいましたら教えてください。
宜しくお願いします。

最後に、今回の問題の解決に力を貸してくれたことに重ねて御礼申し上げます。

投稿者:rucio

編集 履歴 (0)

IISでASP.NETを動かす設定についてわかったことをまとめておきます。

ここで想定しているのはクライアントがVisualStudio.NETを使ってASP.NET WEBアプリケーションを開発(デバッグ)し、サーバーがIIS上でASP.NET WEBアプリケーションを動作させている状況です。

また、ここに書くのは「私はこれでできた」という設定に過ぎず、もっと簡略化した条件でも動作するかもしれないし、設定に間違いがあるかもしれません。こういった点に関して気が付いたことなどある方は指摘してください。

■私が動作を確認した環境
クライアント:
・Windows2000 Pro
・Visual Studio .NET 2002(フルインストール)

サーバー:
・Windows2000 Server
・.NET Framework SDK (Version 1.0.3705)
・IIS 5.0
・「リモート コンポーネント セットアップ」を実行済み
 ・WINNT\Microsoft.NET\Framework\v1.0.3705\CONFIG\machine.configを以下のように編集
要素
userName 属性の属性値を "DOMAINNAME\Administrator" に変更
password 属性の属性値を "" に変更

■この環境で新規ASP.NET WEBアプリケーションを作成する手順
1.サーバー上にフォルダを作成(C:\IISWEB)とする
2.E:\IISWEB\をIISの仮想ディレクトリに設定(ServerName/IISWEB/)
3.E:\IISWEB\Test\フォルダを作成
4.IISでこのTestフォルダをWebアプリケーションとして設定
   ⇒[プロパティ]-[ディレクトリ]タブの[作成]ボタンをクリックした
5.同様にServerExtensionsの設定をした。
6.ローカルでVS.NETのプロジェクの作成でVB.NETの[ASP.NET Webアプリケーション]を選択し、場所には http://ServerName/IISWEB/Test を指定して[OK]ボタンをクリック。
7.このとき次のメッセージがでる
***メッセージここから***
 このプロジェクトの既定のWebアクセスモードはファイルの共有に設定されていますが、'http://ServerName/IISWEB/Test'のプロジェクトフォルダのパス'\\ServerName\wwwroot$\IISWEB\Test'からは開けません。次のエラーが返されました。
Webプロジェクト 'IISWEB/Test'を作成できません。UNC共有'\ServerName$\IISWEB\Test'は存在しないか、またはアクセス許可がありません。
操作を選択してください。
◎別のファイル共有パスを使用して再試行
○FrontPage Server Extensions を使用してプロジェクトを開く
***メッセージここまで***
そこで、2番目のFrontPage Server Extensionを使用してプロジェクトを開くを選択

8.以上
このようにして作成したASP.NET WEBアプリケーションはサーバー上のIISで動作させることができてリモートデバッグも可能でした。

投稿者:rucio

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。