0

まず、私の開発環境: Visual Studio Professional 2010 を搭載した Win7 ラップトップ。IIS はインストールされていません

MVCMusicStore チュートリアルで説明されているように、ASP.NET 構成ツールを使用してユーザー管理の役割を有効にして設定しようとしています。[セキュリティ] タブをクリックすると、次のエラーが表示されます。

「選択したデータ ストアに問題があります。これは、サーバー名または資格情報が無効であるか、アクセス許可が不十分であることが原因である可能性があります。また、ロール マネージャー機能が有効になっていないことが原因である可能性もあります。下のボタンをクリックしてリダイレクトされます。新しいデータ ストアを選択できるページ。

次のメッセージは、問題の診断に役立つ場合があります: タイプ'HandiGamer.MvcApplication' を読み込めませんでした。"

「下のボタン」をクリックすると、プロバイダーとして AspNetSqlProvider を使用していることがわかります。テストしようとすると、次のように表示されます。

「データベースへの接続を確立できませんでした。SQL Server データベースをまだ作成していない場合は、Web サイト管理ツールを終了し、aspnet_regsql コマンド ライン ユーティリティを使用してデータベースを作成および構成してから、このツールに戻って設定します。プロバイダー。」

つまりね:

  1. MVCMusicStore デモのロール/ユーザー管理は、デバッガーで実行すると機能します。自分自身を顧客として追加し、カートからアイテムを追加/削除できます。 それにもかかわらず、構成ツールを使用しようとすると、同じエラーが発生します。

  2. 実際に、SQL Server 2008 Express のコピーで aspnet_regsql を実行しました。ユーザー管理に必要なテーブルを作成しました。それでも問題は解決しませんでした。

チュートリアルでは基本的に「ボタンを 2 つクリックすれば準備完了です」と書かれているので、明らかな何かが欠けているのではないかと思っています。このためのデータベースのセットアップについては、文字通り何も言いませんでした。

私はこの時点で困惑しています。ロール/ユーザー管理は機能しますが (MVCMusicStore で機能することが証明されています)、構成ツールを使用しても、機能をオンにしたり、セットアップしたり、その他の方法で機能を編集したりすることはできません。とてもイライラするようになってきました。どんな助けでも大歓迎です。

編集:私のweb.configは次のとおりです-

<?xml version="1.0"?>

<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=152368
  -->

<configuration>
  <connectionStrings>
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
    <add name="HandiGamer" connectionString="data source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|handigamer.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient" />
  </connectionStrings>

  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>

    <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>

    <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="HandiGamer" />
      </providers>
    </membership>

    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="HandiGamer" />
      </providers>
    </profile>

    <roleManager enabled="true">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="HandiGamer" />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="HandiGamer" />
      </providers>
    </roleManager>

    <pages>
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
4

1 に答える 1

0

解決策を見つけました。構成ツールがデータベースのセキュリティ関連を「参照」する前に、ソリューションをコンパイル/ビルドする必要がありました。

于 2010-08-27T23:35:01.733 に答える