まず、私の開発環境: Visual Studio Professional 2010 を搭載した Win7 ラップトップ。IIS はインストールされていません。
MVCMusicStore チュートリアルで説明されているように、ASP.NET 構成ツールを使用してユーザー管理の役割を有効にして設定しようとしています。[セキュリティ] タブをクリックすると、次のエラーが表示されます。
「選択したデータ ストアに問題があります。これは、サーバー名または資格情報が無効であるか、アクセス許可が不十分であることが原因である可能性があります。また、ロール マネージャー機能が有効になっていないことが原因である可能性もあります。下のボタンをクリックしてリダイレクトされます。新しいデータ ストアを選択できるページ。
次のメッセージは、問題の診断に役立つ場合があります: タイプ'HandiGamer.MvcApplication' を読み込めませんでした。"
「下のボタン」をクリックすると、プロバイダーとして AspNetSqlProvider を使用していることがわかります。テストしようとすると、次のように表示されます。
「データベースへの接続を確立できませんでした。SQL Server データベースをまだ作成していない場合は、Web サイト管理ツールを終了し、aspnet_regsql コマンド ライン ユーティリティを使用してデータベースを作成および構成してから、このツールに戻って設定します。プロバイダー。」
つまりね:
MVCMusicStore デモのロール/ユーザー管理は、デバッガーで実行すると機能します。自分自身を顧客として追加し、カートからアイテムを追加/削除できます。 それにもかかわらず、構成ツールを使用しようとすると、同じエラーが発生します。
実際に、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>