私はちょうど不思議です
なぜasp.netチームは、意味のあるプロジェクト名ではなく、メンバーシップロールアプリケーション名のデフォルト値として/を選択したのですか?
また、アプリケーションがルート アプリケーションとしてデプロイされない場合があります。/ が適切でなくなったことを意味します。
編集1:
例: 最初にプロジェクト A を作成してデプロイします。後で、別のプロジェクト B を作成してデプロイします。両方のプロジェクトがデフォルトを使用している場合でも機能しますが、各プロジェクトのユーザーを特定するのは困難です。
私にとっては、デフォルトがプロジェクト名に設定されている方が良いです。
編集2:
Web.config で Visual Studio によって生成された applicationName 属性について話しています。デフォルトで / の代わりにプロジェクト名を使用しないのはなぜですか?
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="ApplicationServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="ApplicationServices"
applicationName="/" />
</providers>
</profile>
<roleManager enabled="false">
<providers>
<clear />
<add name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="ApplicationServices"
applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider"
type="System.Web.Security.WindowsTokenRoleProvider"
applicationName="/" />
</providers>
</roleManager>
編集3:
2 つのアプリケーション (つまり、1 つをルートとして、もう 1 つを子アプリとして) を作成し、両方とも同じ applicationName を / に設定すると、両方のアプリケーションで同じ ApplicationID が使用されます。これは、スラッシュがサイト ドメイン ツリーとは関係がないことを意味します。私の混乱は解決されました。では、なぜ Visual Studio はデフォルトで / に設定したのでしょうか (これは私にとって混乱を招きます)。
編集4:
2つのアプリケーションがあります。1 つはルート アプリケーションとして、もう 1 つは前者の下のサブ アプリケーションとして。どちらも applicationName = "/" を使用します。データベースで次のような結果が得られました: では、/ の意味は何ですか? 意味がない場合、なぜVSはプロジェクト名ではなく、この紛らわしい名前を選んだのですか?
編集5:
この記事から、要約を作成します。
- 両方のアプリケーションの web.config から applicationName 属性を削除すると、ルート用にデータベースで生成される ApplicationName は「/」になり、サブアプリ用にデータベースで生成される ApplicationName は「/subappvirtualdir」になります。
- 両方のアプリケーションの applicationName をデフォルト値の "/" のままにしておくと、ルート アプリとサブ アプリの両方が、データベースで生成された "/" の同じ ApplicatonName を取得します。
- 両方のアプリケーションで applicationName を「任意の名前」に変更すると、データベースで生成された ApplicationName は、両方のアプリケーションで「任意の名前」に設定されます。
上記のリンクをありがとうロッキン!