0

Visual Studio 2010 および Sql Server 2008 を使用してhttp://nuget.org/packages/System.Web.Providersの「ASP.NET Universal Providers 1.2」を使用しようとしています。

すべてが私のローカル開発ボックスで見つかります。ただし、コードを DEV サーバーにデプロイすると、最初に Web サイトにアクセスしたときに次のエラーが表示されます (存在しない場合はデフォルトのロールとデフォルトのメンバーシップ ユーザーを作成するコードがアプリケーションの起動に含まれています)。

「接続名 'LocalSqlServer' がアプリケーション構成で見つからないか、接続文字列が空です。」

SqlMembershipProvider テーブルを作成するための SQL スクリプトを作成しました (プロバイダーがローカルで正しく実行されたときに、一時データベースからリバース エンジニアリングされました)。正しいテーブルがあり、開発ボックスのメインの SQL サーバー インスタンスを使用して問題なく動作します。

リモート DEV サーバーで古いプロバイダーを使用しようとする理由がわかりません。許可エラーだと思います。私の開発ボックスでは、私は管理者であり、統合セキュリティを使用していました。DEV サーバーの場合、SQL Server アカウント (以下の接続文字列を参照) を使用しています。これは、SELECT INSERT UPDATE DELETE として、各 SqlMembershipProvider テーブルにアクセスできます。SQL Server アカウントに必要な権限は他にありますか?

web.config のプロバイダー値は次のとおりです。

<profile defaultProvider="DefaultProfileProvider" enabled="true">
  <providers>
    <add name="DefaultProfileProvider"
      type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
      connectionStringName="MasterSqlClientConnectionString" applicationName="PortalDEV"/>
  </providers>
</profile>
<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <add name="DefaultMembershipProvider"
      type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
      applicationName="PortalDEV" connectionStringName="MasterSqlClientConnectionString" enablePasswordRetrieval="true" enablePasswordReset="true"
      requiresQuestionAndAnswer="true" requiresUniqueEmail="true" maxInvalidPasswordAttempts="3" minRequiredPasswordLength="8"
      minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordFormat="Encrypted"/>
  </providers>
</membership>
<roleManager defaultProvider="DefaultRoleProvider" enabled="true" cacheRolesInCookie="false" cookiePath="/" cookieProtection="All" cookieRequireSSL="true"
  cookieSlidingExpiration="true" cookieTimeout="16" maxCachedResults="25">
  <providers>
    <add name="DefaultRoleProvider"
      type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
      connectionStringName="MasterSqlClientConnectionString" applicationName="PortalDEV"/>
  </providers>
</roleManager>
<sessionState mode="InProc" customProvider="DefaultSessionProvider" compressionEnabled="true" timeout="16">
  <providers>
    <add name="DefaultSessionProvider"
      type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  </providers>
</sessionState>

そして、これが私の接続文字列です(データがマスクされています):

何か案は?

4

1 に答える 1

0

トリックは、構成ファイルのセクションの先頭に「< clear / >」行を追加することでした。 ASP.NET Universal Providers 1.2 - 「接続名 'LocalSqlServer' が見つかりませんでした」

于 2015-05-05T17:26:23.760 に答える