3

Web プロジェクトに複数のフォルダーとそのページを持つ Web アプリケーションに取り組んでいます。従来のすべてのマークアップを行う web.config もあります。「customerportal」という別のフォルダーを作成する必要があり、このフォルダーにcustomerlogin.aspxcustomerdefault.aspxおよびの 3 つのページを作成しましcustomerhelp.aspxた。また、そのフォルダー内に 3 つのフォルダー、画像、css、およびスクリプトを追加しました。

そのフォルダーに移動するとhttp://mysite.com/customerportal/customerlogin.aspx、問題なく動作します。web.configこのフォルダーを顧客の役割のみに制限する必要があり、同様にメインアプリ (親) をクライアントの役割に制限する必要があるため、ファイルを追加しました。そのため、クライアントはカスタマー ポータルにアクセスできず、カスタマー ポータルのユーザーはアプリのメイン ページにアクセスできません。そのため、子の役割を制限するマークアップを追加しましたがweb.config.、これは機能しませんでした。

    Parser Error Message: It is an error to use a section registered as
allowDefinition='MachineToApplication' beyond application level.  
This error can be caused by a virtual directory not being 
configured as an application in IIS.

そのため、フォルダーを仮想ディレクトリに変換してから、iis のアプリケーションに変換しました。web.configその後、エラーはなくなりましたが、 mainが child に継承されるなど、他の問題が発生しましたweb.config。それで私は調査を始めました、そして私は次のような多くの答えを見ました:

<location path="." inheritInChildApplications="false">セクションの前に配置して<system.web>、これを試しましたが、<membership>タグでエラーが発生しました。メンバーシップは別の aspmembership データベースにあるため、子には別の接続文字列などがあります。しかし、私は次のようなことを行うことができません

<membership>
  <clear />

または<membership> <remove name=..>

どういうわけかメンバーシップがまだ継承されているようです。この子の web.config の問題を解決する最善の方法は何ですか?、子フォルダーが独自の web.config を必要とするこの種のセットアップを行うためのベスト プラクティスは何ですか? これは初めてです。

4

1 に答える 1

0

問題を正しく理解している場合は、ルートweb.configに認証を追加し、パス「〜/ customerportal /customerlogin.aspx」などを指定することはできませんか?あなたがweb.configを持っているので、それはディレクトリがそれ自身のアプリケーションであると考えていると思います。

于 2013-01-29T18:17:30.397 に答える