使用VS 2010 建了一个SharePoint WebPart,里面有一行代码:
Session["InvitationCode"] = code;
每次执行到这里都出现了错误提示:
只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 <configuration> / <system.web> / <httpModules> 节中包括 System.Web.SessionStateMod 或自定义会话状态模块。
Google、Baidu了许多文章,都没有一个准确的办法能解决这个问题。
下面是我的做法:
1. 打开“管理工具”-“服务”,检查“ASP.NET状态服务”是否处于“启动”状态,如果不是,启动它;
2. 打开 SharePoint应用程序的 web.config文件(如我的建立的80端口的网站的web.config文件路径为:C:/inetpub/wwwroot/wss/VirtualDirectories/80),找到 <httpModules>节点,在<httpModules>节点里添加
<add name="Session" type="System.Web.SessionState.SessionStateModule" />。
再找到 <pages>节点,将enableSessionState属性设置为 true;
3. 打开 IIS7 管理器,定位到SharePoint应用程序下,双击打开“模块”,在右键菜单(或者在右侧“操作”窗口)里点击“添加托管模块”,在弹出来的窗口里,名称里输入“Session”,类型里选择“System.Web.SessionState.SessionStateModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”。
这3步做法成功启用了我的 SharePoint 2010的Session功能。
我的环境:
windows server 2008 R2虚拟机,SharePoint 2010,网站使用了Form验证。
记录下来,希望能帮助到遇到同样问题的朋友们。