none
修改MOSS后,使用session出了问题 RRS feed

  • 问题

  •  

    我的环境是win2003,MOSS2007.

    安装完成之后,按照下边这篇文章修改了机器名。
    http://www.sharepointblogs.com/mirjam/archive/2007/08/06/renaming-a-moss-server.aspx
    修改后,其他都还好,没什么异常。

    就是这两天写一个webpart中需要使用session,发现session几乎不能使用,总是丢失。(我已经修改了默认config中文件的session两个配置节点---一个是取消了session节点的注释符,一个是设置enableSessionState为true)

    后来通过trace.asd页面发现,我同一个页面每次postback服务器都会发给客户端一个新的sessionid,没办法,只好临时添加了sessionstate节点,通过url传递sessioid,这下问题就解决了。(注意,我已经确定了是由于修改机器名引起的,因为正好机器名修改之前的备份在,我测试发现session正常)

     

    但我就还是奇怪,为什么我修改了机器名会引起这个问题呢? 还有什么其他的解决方案不。

     

    补充一点,我的机器并不是域控,而且也不在域里边。 譬如修改前机器名是AA,修改后机器名是BB,那么我的登录名就分别是AA\administrator 和BB\administrator

    2008年6月15日 13:52

答案

全部回复

  •  

    MOSS默认的session是存放到数据中的。。那你如果计算机名改了,你当时在配置数据库的时候是不是用的就是计算机名来表示数据库服务器呢?明白了没?
    2008年6月16日 12:40
  • 您好,感谢您的回复。

    这个机器不是我安装的,我是用别人给的Image。不过您说的我还不太明白,如果是数据库问题的话,那按理说应该我整个site都应该有问题啊,但实际上这个site内容显示什么的都没有问题。

    另外,刚才我进入管理中心,Central Administration > Operations > Default Database Server  

    发现Database server名称就是我修改后的机器名,看样子好像不是这个原因。

    您能否详细说一下如果是您说的那个原因的话,我应该怎样修改?

    2008年6月16日 14:08
  •  

    <sessionState mode="SQLServer" timeout="60" allowCustomSqlDatabase="true" partitionResolverType="Microsoft.Office.Server.Administration.SqlSessionStateResolver, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />

     

    这个应该是moss默认的sessionState吧?关键是她这个DLL到哪里去找数据库连接。。。

    应该不是到内容数据库的,还是配置数据库,或者是在哪个xml里面, 具体我也不知道。。。

     

    你把这节删了?可以运行起来吗?

    2008年6月17日 3:18
  • 但是我试过修改机器名前,将enableSessionState设为false后,session也照样可以用。

    我想这个配置应该是指定是否使用sessionState ,由于设了false之后还可以用,那么可以猜测此时是保存在内存中的。

    而把机器名修改之后,同样的配置文件session就无法保存了, 直接原因就是sessionid每次都在变化。

    实在想不通!

    2008年6月17日 5:31
  • 你的是IIS6吗?iis6的应用程序池的Web园数目如果不是1,就有可能出现这样的问题。

    2008年6月17日 5:35
    版主
  •  

    是的,我的是IIS6,不过我的work garden是1。

     

    2008年6月17日 6:11
  •  

    看样子,怀疑是MOSS的bug了。
    2008年6月23日 0:48