none
ASP.NET Web サイト管理ツール - 新しいアクセス規則の追加 で、ツリーアイテムが選択できないのは? RRS feed

  • 質問

  • みなさま、よろしくお願いします。

     

    VS.NET 2008 を、Vista Business SP-1 (64bit) 上で使用しています。DBは、SQL 2005 Express です。

     

    フォーム認証の学習の為、チュートリアルを参考に作成しているのですが、ロールとユーザーの作成や編集等はできるものの、新しいアクセス規則の追加 にて、画面左のディレクトリ・ツリー上の設定対象をクリックしても、画面が書き換わるだけで選択状態とならず、設定ができません。

     

    これでは、フォルダへのアクセス制限がかけられず困っているのですが、解決方法があるのでしょうか?

     

    尚、セキュリティ・タブ画面の「手順に従ってセキュリティを構成するには、セキュリティ設定ウィザードを使用してください。」をクリックすると、「指定された引数は、有効な値の範囲内にありません。パラメータ名: site 場所 System.Web.Configuration.WebConfigurationHost.InitForConfiguration(String& locationSubPath ・・・」と、こちらもなぜか動作してくれません。

     

    情報をお持ちでしたら、よろしくお願いいたします。

    2008年10月1日 8:27

回答

  • > サイトのネストが問題だったのかもしれません。

     

    その意味が分かりませんが・・・

     

    > また、アクセス権の設定なのですが、フォルダ・ツリーのアイテムをクリ
    > ックしても選択状態になるわけではなさそうですね..

     

    ディレクトリをクリックして選択すると、そのディレクトリのバックグラウ
    ンドが薄いグレーになるはずです。薄いのでディスプレーによっては見えな
    いかもしれません。


    > ただ、どうも Web.config にはこのアクセス制限情報が反映されてはいない
    > ようなのですが..
    > (この情報はどこに保管??)

     

    そんなことはなくて、設定したディレクトリに web.config ファイルが自動
    生成されて、そこに設定が保存されているはずです。

     

    例えば、ロール members を許可にし、すべてのユーザーを拒否にすると(一
    度に両方はできませんので注意)、以下のようなコードが生成されます。

     

    Code Snippet

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <system.web>
            <authorization>
                <allow roles="members" />
                <deny users="*" />
            </authorization>
        </system.web>
    </configuration>

     

     

    ソリューションエクスプローラーの[最新の情報に更新]ボタンをクリック
    してから確認してください。


    #アクセス権の設定に「ASP.NET 構成」ツールは使いにくいので、自分は
     web.config ファイルを作ってそれに直接設定するようにしています。

    2008年10月1日 13:02
  • >> サイトのネストが問題だったのかもしれません。

    > その意味が分かりませんが・・・

     

    既定のWebサイトの直下でうまくいった、ということは、最初にやろうとしていたフォルダに対して「アプリケーションの設定」がなされていなかったからうまくいかなかったんじゃないですかね。
    Vista上のIIS7だと仮想フォルダを作成する際にアプリケーションとして作成するか、単純に仮想フォルダを作成するかが別の操作になります。このあたりIIS6と異なっているので、その操作がうまくできてなかったとかも考えられるかな。

     

    > そんなことはなくて、設定したディレクトリに web.config ファイルが自動
    > 生成されて、そこに設定が保存されているはずです。

     

    そうですね。
    web.configはルート以外にそれぞれのディレクトリに作成して設定を書き込むこともできます。
    サイト管理ツールは通常ディレクトリごとにweb.configを作成するのでそちらを探してみるとよいでしょう。

    2008年10月2日 0:54
  •  k.yamazaki さんからの引用

    http://localhost/testsite のような構成で起こしたプロジェクトでは一切問題は確認されないのですが、私の環境固有の問題なのかもしれません。

     

    k.yamazaki さんに固有の問題ではなく、誰にも起こる問題と思いますが(少なくとも自分の

    環境でも同じエラーが出ます)。

     

    「場所 (L)」を「HTTP」にして新しい Web サイトを作る場合、C:\inetpub\wwwroot にディレク

    トリにが作られますが、Web サイトはその直下でないとダメです。

     

    「場所 (L)」を「ファイルシステム」にして新しい Web サイトを作る場合は、そのような制約は

    ないようです。

     

    2008年10月6日 13:53
  •  k.yamazaki さんからの引用

    私の環境固有の問題ではなくて、そうなると、仕様なのでしょうか.. 「Web サイトはその直下でないとダメです」ですと、必ずしもそうしたくはないケースでは困ることに...

     

    仮想ディレクトリに設定すれば、C:\inetpub\wwwroot\ 直下である必要はありま

    せん。

     

    C:\inetpub\wwwroot\folder1\testsite の testsite をアプリケーションルートに
    したい場合は、管理ツールの IIS マネージャーで testsite を仮想ディレクトリ
    に設定する必要があります。

     

    IIS マネージャーで testsite を仮想ディレクトリに設定したら(IIS7 の場合は、
    どっとねっとふぁんさんが言われているように、「アプリケーションに設定」も

    必要)、[ファイル]→[Web サイトを開く]で[ローカル IIS]を選択してやると、
    Default Web Site 下に、先ほどディレクトリに設定した testsite があるはずです。

     

    それを選択して開いてやれば、あとは[ASP.NET 構成]ツールで問題なく設定

    できるはずです。

     

    [ファイルシステム]で任意のフォルダをアプリケーションルートに設定した場

    合でも、そのフォルダを仮想ディレクトリに設定してやれば、ローカル IIS 環境

    での試験は可能です。(フォルダのアクセス権などの問題がなければ)

    2008年10月7日 14:48

すべての返信

  • 自己レスです...

     

    もしかしたら、サイトのネストが問題だったのかもしれません。

    新たに、規定のWebサイト下にソリューション・フォルダがある形で作成してみましたら、何の問題もなくセキュリティ設定ウィザードが表示されてしまいました。 (^^; 問題のものは、さらに1つ下のフォルダとなっていましたので...

     

    また、アクセス権の設定なのですが、フォルダ・ツリーのアイテムをクリックしても選択状態になるわけではなさそうですね..(結果として) よって、設定中の対象が判断できず不安なのですが、どうも、アイテムをクリック後に拒否・許可の設定をおこなって保存すれば、それが生きているようです。 ただ、どうも Web.config にはこのアクセス制限情報が反映されてはいないようなのですが..

    (この情報はどこに保管??)

     

    (--;

    2008年10月1日 9:34
  • > サイトのネストが問題だったのかもしれません。

     

    その意味が分かりませんが・・・

     

    > また、アクセス権の設定なのですが、フォルダ・ツリーのアイテムをクリ
    > ックしても選択状態になるわけではなさそうですね..

     

    ディレクトリをクリックして選択すると、そのディレクトリのバックグラウ
    ンドが薄いグレーになるはずです。薄いのでディスプレーによっては見えな
    いかもしれません。


    > ただ、どうも Web.config にはこのアクセス制限情報が反映されてはいない
    > ようなのですが..
    > (この情報はどこに保管??)

     

    そんなことはなくて、設定したディレクトリに web.config ファイルが自動
    生成されて、そこに設定が保存されているはずです。

     

    例えば、ロール members を許可にし、すべてのユーザーを拒否にすると(一
    度に両方はできませんので注意)、以下のようなコードが生成されます。

     

    Code Snippet

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <system.web>
            <authorization>
                <allow roles="members" />
                <deny users="*" />
            </authorization>
        </system.web>
    </configuration>

     

     

    ソリューションエクスプローラーの[最新の情報に更新]ボタンをクリック
    してから確認してください。


    #アクセス権の設定に「ASP.NET 構成」ツールは使いにくいので、自分は
     web.config ファイルを作ってそれに直接設定するようにしています。

    2008年10月1日 13:02
  • >> サイトのネストが問題だったのかもしれません。

    > その意味が分かりませんが・・・

     

    既定のWebサイトの直下でうまくいった、ということは、最初にやろうとしていたフォルダに対して「アプリケーションの設定」がなされていなかったからうまくいかなかったんじゃないですかね。
    Vista上のIIS7だと仮想フォルダを作成する際にアプリケーションとして作成するか、単純に仮想フォルダを作成するかが別の操作になります。このあたりIIS6と異なっているので、その操作がうまくできてなかったとかも考えられるかな。

     

    > そんなことはなくて、設定したディレクトリに web.config ファイルが自動
    > 生成されて、そこに設定が保存されているはずです。

     

    そうですね。
    web.configはルート以外にそれぞれのディレクトリに作成して設定を書き込むこともできます。
    サイト管理ツールは通常ディレクトリごとにweb.configを作成するのでそちらを探してみるとよいでしょう。

    2008年10月2日 0:54
  • メッセージをいただきました方々、ありがとうございました..

    その後、ちょっと仕事の合間に再現性等試してまして遅くなりました..

     

    まず、VS にて新規Webサイトを起す際、http://localhost/testsite ではなく、http://localhost/folder1/testsite のようにするだけで、ASP.NET 構成 --> セキュリティ --> 手順に従って・・・ を選択すると 最初の質問に記載したエラーとなります。よって、ウィザード形式ではいろいろな設定はおこなえません。

     

    再現性を見る為に新たに起こしたプロジェクトでは、上記は再現するものの、ツリーの反転表示が見えない件は再現できませんでした。別に、モニター等の設定は触ってはいないのですが、ちゃんとグレーの背景が確認できています。

     

    なお、アクセス規制の管理 を選択すると、正常に機能する場合と、エラーとなる場合が確認されます。

    指定された引数は、有効な値の範囲内にありません。パラメータ名: site 場所 System.Web.Configuration.WebConfigurationHost.InitForConfiguration(String& locationSubPath, ・・・」

     

    これら以外は特に不具合は見当たりません。ユーザーやロールの設定など、問題なく使えています。

     

    http://localhost/testsite のような構成で起こしたプロジェクトでは一切問題は確認されないのですが、私の環境固有の問題なのかもしれません。

     

    情報をありがとうございました。

    2008年10月6日 9:33
  •  k.yamazaki さんからの引用

    http://localhost/testsite のような構成で起こしたプロジェクトでは一切問題は確認されないのですが、私の環境固有の問題なのかもしれません。

     

    k.yamazaki さんに固有の問題ではなく、誰にも起こる問題と思いますが(少なくとも自分の

    環境でも同じエラーが出ます)。

     

    「場所 (L)」を「HTTP」にして新しい Web サイトを作る場合、C:\inetpub\wwwroot にディレク

    トリにが作られますが、Web サイトはその直下でないとダメです。

     

    「場所 (L)」を「ファイルシステム」にして新しい Web サイトを作る場合は、そのような制約は

    ないようです。

     

    2008年10月6日 13:53
  • SurferOnWww さん、度々、ありがとうございます。

     

    私の環境固有の問題ではなくて、そうなると、仕様なのでしょうか.. 「Web サイトはその直下でないとダメです」ですと、必ずしもそうしたくはないケースでは困ることに...

     

    プロジェクトを起こす時には、Webサイトではなく、ファイルシステムを選択するようにします..

     

    また、機会がありましたらよろしくお願いします。

    2008年10月7日 1:33
  •  k.yamazaki さんからの引用

    私の環境固有の問題ではなくて、そうなると、仕様なのでしょうか.. 「Web サイトはその直下でないとダメです」ですと、必ずしもそうしたくはないケースでは困ることに...

     

    仮想ディレクトリに設定すれば、C:\inetpub\wwwroot\ 直下である必要はありま

    せん。

     

    C:\inetpub\wwwroot\folder1\testsite の testsite をアプリケーションルートに
    したい場合は、管理ツールの IIS マネージャーで testsite を仮想ディレクトリ
    に設定する必要があります。

     

    IIS マネージャーで testsite を仮想ディレクトリに設定したら(IIS7 の場合は、
    どっとねっとふぁんさんが言われているように、「アプリケーションに設定」も

    必要)、[ファイル]→[Web サイトを開く]で[ローカル IIS]を選択してやると、
    Default Web Site 下に、先ほどディレクトリに設定した testsite があるはずです。

     

    それを選択して開いてやれば、あとは[ASP.NET 構成]ツールで問題なく設定

    できるはずです。

     

    [ファイルシステム]で任意のフォルダをアプリケーションルートに設定した場

    合でも、そのフォルダを仮想ディレクトリに設定してやれば、ローカル IIS 環境

    での試験は可能です。(フォルダのアクセス権などの問題がなければ)

    2008年10月7日 14:48
  • SurferOnWww さん、いろいろありがとうございます..

     

    > 仮想ディレクトリに設定すれば、C:\inetpub\wwwroot\ 直下である必要はありません。

     

    仮想ディレクトリについては、私も考えてはいました。でも、まぁ、今は Webサイトで新規構築するのは止めようということで作業を進めています。

     

    脱線するのですが、そんな際...  VS.NET がなぜかサーバーエクスプローラ画面を表示しなくなってしまって.. メッセージ領域に目をやると「Visual Studio Explorers and Designers Package ...」エラーが出ています.. ちなみに、GritView から SQL2K5 DB に接続もできなく... と、そんな訳で、一度、Windows から再インストール・・・ ですね..

    (Silverlight2 系とかをベータから入れてたからなのか..)  しばらくここにもアクセスできなくなりそうですので、ひとまず御礼を..

    ありがとうございました!

    2008年10月9日 9:50
  • こんにちは。中川俊輔 です。

     

    SurferOnWwwさん、どっとねっとふぁんさん、回答ありがとうございます。

     

    k.yamazakiさん、フォーラムのご利用ありがとうございます。

    有用な情報と思われたため、勝手ながら

    SurferOnWwwさん、どっとねっとふぁんさんの回答へ回答済みチェックをつけさせていただきました。

     

    今後ともフォーラムをよろしくお願いします。

    それでは!

    2008年10月22日 9:23