0

asp.netユニバーサルプロバイダーをインストールしましたが、構成を変更した後、「EFプロバイダーには、System.Data.SqlClient接続文字列に対してMultipleActiveResultSets = Trueが必要です」というエラーが表示されます

接続文字列も変更しました

以下は私の接続文字列とweb.configのセッションブロックです助けてください

<add name="DbEntities" connectionString="metadata=res://*/Entities.csdl|res://*/Entities.ssdl|res://*/Entities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=<source>;Initial Catalog=<DB Name>;User ID=<User>;Password=<Password>;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

<add name="StorageConnectionString" connectionString="DefaultEndpointsProtocol=http;AccountName=<Account Name>;AccountKey=<Account Key>" />

  <providers>

    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="StorageConnectionString" applicationName="/" />

  </providers>

</sessionState>
4

2 に答える 2

0

小さなエラーが 1 つだけで、ほとんど理解できたと思います。セッション状態プロバイダーを追加するときは、ストレージ接続文字列ではなく、SQL 接続文字列を指す必要があります。

  <providers> 

    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DbEntities" applicationName="/" /> 

  </providers>

単なる提案ですが、新しい appfabric キャッシュ セッション状態プロバイダーの使用を検討することをお勧めします。

于 2011-08-31T08:39:02.653 に答える
0

わーい!うまくいきました!

ASP.NET Universal Providers をリモート Web マシンに配置し、SQL サーバーを別のボックスに配置する場合、マスター web.config で LocalSqlServer 接続を「削除」してから、Web プロジェクト web にダミーの LocalSqlServer 接続文字列を設定する必要があります。 .config. 例えば

<clear />
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="data source=someserver;initial catalog=somedatabase;UID=someuser;PWD=somepassword;multipleactiveresultsets=True" providerName="System.Data.SqlClient"/>
于 2012-08-23T17:58:50.920 に答える