15

「私の Web サイトは LIVE です。この問題は、localhost ではなく LIVE サーバーでのセッション タイムアウトの構成に関連しています。」

セッションの期限切れが早すぎるという問題があります。わずか 2 ~ 5 分でリンクできます。私は多くのことを試しましたが、最終的にセッションを「SQL Server」モードで保存することにしました

私の web.config ファイルには、次のコーディングがあります。

<sessionState mode="SQLServer" cookieless="false" timeout="45"
sqlConnectionString="data source=xxx.xx.xx.xxx;uid=xxxxxxx;pwd=xxxxxxxx"/>

サーバー上のASPStateテーブルに必要なすべてのテーブルがあります。下の画像から見ることができます。

ここに画像の説明を入力

しかし、アプリケーションを実行すると、以下のエラーがスローされます。

「ASP.NET バージョン 2.0 セッション状態が SQL サーバーにインストールされていないか、ASP.NET に dbo.TempGetVersion ストアド プロシージャを実行する権限がないため、SQL Server を使用できません。ASP.NET セッション状態スキーマが持っていない場合インストールされている場合は、ASP.NET セッション状態 SQL Server バージョン 2.0 以降をインストールしてください。スキーマがインストールされている場合は、dbo.TempGetVersion ストアド プロシージャに対する実行権限を ASP.NET アプリケーション プール ID または SQL Server ユーザーに付与してください。 sqlConnectionString 属性で指定されています。」

エラーの画像:

ここに画像の説明を入力

正確な問題とその解決方法を理解できません。どんな助けでも大歓迎です。

ありがとうございました

4

5 に答える 5

36

これを機能させるために、次のオプションを指定してコマンドを実行しました。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe -S . -E -ssadd -sstype p

-ssaddオプション(「SQL Serverモードのセッション状態のサポートを追加します。」)が、ストアドプロシージャを適切にセットアップした原因だと思います。オプションの完全なリストについては、このリンクを参照してください。

于 2014-04-30T14:27:11.710 に答える
5

ツリーで「プログラマビリティ」を開き、最初に dbo.TempGetVersion が存在するかどうかを確認します。適切なスキーマがインストールされていない可能性があります。

于 2013-03-13T09:13:40.410 に答える
4

たぶんあなたはあなたのweb.configに悪いタグを持っています

正しい例は次のとおりです。

<sessionState 
allowCustomSqlDatabase="true" 
mode="SQLServer" 
sqlConnectionString="data source=localhost;initial catalog=YourAspStateDatabase;user id=yourLogin;password=yourpassword" cookieless="false" timeout="30"/>
于 2013-03-13T19:29:47.453 に答える