asp.Netはsqlserverでsession共有を実現(100%成功)

11440 ワード

亲爱なる友达、このドキュメントをダウンロードして、私はあなたがきっと私と同じだと思って、sessionが问题を共有するため、ずっと苦悩して良策がありませんか?そのため、私はいろいろな方法を試しましたが、成功できませんでした.それからよく试して、最后に原因を発见して、ついに解决しました.
一、構成理由説明:
共有セッションは、会社が開発する際、WEBがサーバに公開する複数のサイト、例えばwww.yd009.com newsを構成するためである.yd009.com product.yd009.comといういくつかのサイトには、登録情報があり、メインサイトにリンクがあります.マスタ局がログインした場合、これらの2級ドメイン名にジャンプしても、同様にログイン状態が可能である.これをする前に、私もネットでたくさんの資料を探して、ほとんど完璧ではありません.とても気がふさいで、みんなはすべて手を残すためかもしれません.
http://www.cnblogs.com/dfsxh/archive/2009/10/09/1579579.html
http://www.cnblogs.com/yizhu2000/archive/2008/04/01/1131976.html
http://hi.baidu.com/vcty2007/blog/item/ce313460f04d474eebf8f8fb.html
===多すぎる.完璧なものは一つもない.
 
二、構成を実現する
言語:asp.Net開発ツール:VS 2008データベースsqlserver 2005
三、配置手順
1,運転開始->cmd->cd C:WINDOWSMicrosoft.NET\Framework\v2.0.50727(win 2003は一般的にこのディレクトリ)
  2,aspnet_regsql.exe-sstype c-ssadd-dあなたのデータベース名-Uユーザー名-Pパスワード-Sデータベースサービスアドレス
3、中のストレージプロセスを修正する
    
 1 set ANSI_NULLS ON

 2 set QUOTED_IDENTIFIER ON

 3 go

 4 

 5 

 6 alter PROCEDURE dbo.TempGetAppID

 7 @appName    tAppName,

 8 @appId      int OUTPUT

 9 AS

10 

11 SET @appName = LOWER(@appName)

12 SET @appId = NULL

13 

14 --  AppName   AppId

15 --       ,   AppId    .

16 SELECT top 1 @appId = AppId

17 FROM [hnAuto].dbo.ASPStateTempApplications

18 --WHERE AppName = @appName

19 

20 --       AppId

21 IF @appId IS NULL

22 BEGIN

23     BEGIN TRAN

24         --      

25         SELECT @appId = AppId

26         --SELECT top 1 @appId = AppId

27         FROM [hnAuto].dbo.ASPStateTempApplications WITH (TABLOCKX)

28         WHERE AppName = @appName

29         

30         --       AppId

31         IF @appId IS NULL

32         BEGIN

33             --  AppName HashCode

34             EXEC GetHashCode @appName, @appId OUTPUT

35             

36             --   AppId

37             INSERT [hnAuto].dbo.ASPStateTempApplications

38             VALUES

39             (@appId, @appName)

40             

41             IF @@ERROR = 2627 

42             BEGIN

43                 DECLARE @dupApp tAppName

44             

45                 SELECT @dupApp = RTRIM(AppName)

46                 FROM [hnAuto].dbo.ASPStateTempApplications 

47                 WHERE AppId = @appId

48                 

49                 RAISERROR('SQL session state fatal error: hash-code collision between applications ''%s'' and ''%s''. Please rename the 1st application to resolve the problem.', 

50                             18, 1, @appName, @dupApp)

51             END

52         END

53     COMMIT

54 END

55 

56 RETURN 0 

 
以上の手順で、コピーして実行すればいいです.
四、webを修正する.システムにいるWebは以下の項目を追加または変更します.
1  <httpCookies domain="news.com" />

2       <sessionState mode="SQLServer" sqlConnectionString="data source=[Server];initial catalog=[DataBase];user id=[UserName];password=[Password]" allowCustomSqlDatabase="true"  timeout="120"/>

 
五、OK、君は大功を成し遂げた.IISを再起動することを覚えておいて、自分の本体のクッキーやゴミの項目をクリアしたほうがいいです.
はい、解説が終わりました.