为什么更改会话状态提供程序会导致ASPx页面产生垃圾?

时间:2010-02-26 16:27:09

标签: asp.net sql session encoding

我有一个aspnet webapp,到目前为止一直运行良好。

我最近被要求探索如何让它更好地扩展。

我发现分离数据库和Webapp会有所帮助。

此外,有人告诉我,如果我将会话提供机制更改为SQLServer,我将能够将Web堆栈复制到多台计算机,这些计算机可以每次调用状态服务器,从而更好地分配负载。

这听起来很合乎逻辑。所以我使用ASPNet_RegSQL.exe创建了一个ASPState数据库,详见网络上的许多位置,并更改了我的应用程序上的web.config:

<sessionState mode="InProc" cookieless="false" timeout="20" />

要:

<sessionState mode="SQLServer" 
 sqlConnectionString="Server=SomeSQLServer;user=SomeUser;password=SomePassword"
 cookieless="false" timeout="20" />

然后我发现了我的应用程序,它向我提供了登录屏幕并且我正式登录。

一旦我出现,我的页面与我期待的页面不一致。

我可以来回更改会话状态。这个问题消失了,然后根据我使用的配置集返回。

为什么会这样?

2 个答案:

答案 0 :(得分:2)

好错误Dude:)

可能是红鲱鱼,但你在会话状态下存储了什么?

当您从InProc迁移到SQL Server时,您在SQL中存储的内容必须是Serializable(我认为)

答案 1 :(得分:1)

使用Fiddler查看通过网络传输的内容。对我而言,当浏览器期待HTML时,您的应用程序似乎正在发回图像。