2011-09-12 14 views
2

私はデータベースを共有ホスティングによって提供しています。私は、SQL Serverのセッションを保存したいが、それは私にエラーを与える:Asp.Net 4.0 SqlServerでのセッションの保存

Unable to use SQL Server because ASP.NET version 2.0 Session State is not installed on the SQL server. Please install ASP.NET Session State SQL Server version 2.0 or above 

[HttpException (0x80004005): Unable to use SQL Server because ASP.NET version 2.0 Session State is not installed on the SQL server. Please install ASP.NET Session State SQL Server version 2.0 or above.] 
System.Web.SessionState.SqlPartitionInfo.GetServerSupportOptions(SqlConnection sqlConnection) +2147087 
System.Web.SessionState.SqlPartitionInfo.InitSqlInfo(SqlConnection sqlConnection) +107 
System.Web.SessionState.SqlStateConnection..ctor(SqlPartitionInfo sqlPartitionInfo, TimeSpan retryInterval) +531 
System.Web.SessionState.SqlSessionStateStore.GetConnection(String id, Boolean& usePooling) +237 
System.Web.SessionState.SqlSessionStateStore.CreateUninitializedItem(HttpContext context, String id, Int32 timeout) +136 
System.Web.SessionState.SessionStateModule.CreateUninitializedSessionState() +50 
System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData) +659 
System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +96 
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184 

私のWebConfigは、次のステートメントが含まれます。

<sessionState mode="SQLServer" 
     cookieless="true" 
     regenerateExpiredSessionId="true" 
     timeout="30" 
     allowCustomSqlDatabase="true" 
     sqlConnectionString="Data Source=hostingServer;Initial   catalog=MyDatabase;User Id=MyUser;password=MyPassword;" 
     stateNetworkTimeout="60"/> 

私はaspnet_regsql.exeを実行しました。それはそれがaspNret_TableNamesを作成した後、サーバーとログインの詳細について私に尋ねた。

私をご案内ください。

答えて

13

aspnet_regsql.exeアプリケーションを使用してウィザードを起動して、さまざまなaspnet_ *テーブルをテーブルに追加する必要があると思います。

同じウィザードを再起動してから、[削除]オプションを選択してデータベースからすべてのテーブルを削除します。

は今、このコマンドを実行します。

aspnet_regsql.exe -ssadd -d <Your Database> -sstype c -S <Server> -U <Username> -P <Password> 

これは、あなたのデータベース、すなわちASPStateTempApplications & ASPStateTempSessionsに2つのテーブルを追加します。

は、次の設定を含めるようにweb.configファイルを変更します。

<sessionState 
    mode="SQLServer" 
    allowCustomSqlDatabase="true" 
    sqlConnectionString="Data Source=Server;Initial Catalog=Database;User ID=UserId;Password=Password" 
    cookieless="false" timeout="20" /> 

注:私はあなたのアプリケーションのデータベースにセッションを保存することを想定している 1。セッションデータベースを個別に管理したい場合は、上記のコマンドを "-d"パラメータなしで実行します。これにより、上記で指定した2つのテーブルを持つ新しいASPStateデータベースが作成されます。最後に、構成内でこのデータベースの名前を指定することができます。

希望はこのことができます:)

+0

は、私が低下した今、それを使用して、私はあなたのソリューション –

+0

ねえ悪魔、素晴らしいソリューション:))あなたはちょうど私の一日保存した –

+0

に試してみることでしょう! –

関連する問題