我已经在Google上研究过这个错误,但未能成功,最后发布在这里。
我已经下载了我的实时网站,数据库并将其集成到我的本地环境中。我只能看到主页但无法看到其他页面。我的所有其他页面都面临以下错误。
我认为 default.aspx 是DNN中的主页,因此它可以正常工作,但不能从DNN表动态呈现其他页面。
错误例外:
只有在配置文件或Page指令中将enableSessionState设置为true时,才能使用会话状态。还请确保System.Web.SessionStateModule或自定义会话状态模块包含在应用程序配置的\\部分中。
事件日志表消息:
DotNetNuke.Services.Exceptions.PageLoadException:只有在配置文件或Page指令中将enableSessionState设置为true时,才能使用会话状态。另请确保System.Web.SessionStateModule或自定义会话状态模块包含在< configuration> \< system.web> \< httpModules>中。应用程序配置中的部分。 ---> System.Web.HttpException:只有在配置文件或Page指令中将enableSessionState设置为true时,才能使用会话状态。另请确保System.Web.SessionStateModule或自定义会话状态模块包含在< configuration> \< system.web> \< httpModules>中。应用程序配置中的部分。 在System.Web.UI.Page.get_Session() 在DotNetNuke.Framework.CachePageStatePersister.Save() 在System.Web.UI.Page.SavePageStateToPersistenceMedium(对象状态) 在System.Web.UI.Page.SaveAllState() 在System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) ---内部异常堆栈跟踪结束---
我从this link获取了参考,并在我的网络配置文件中更新如下,但我错过了我网站的所有页面,也无法看到主页。 EventLog 表显示了我在问题中发布的错误消息。
更新网络配置,如下所示:
<modules runAllManagedModulesForAllRequests="true">
<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule"/>
...
<httpModules>
<add name="Session" type="System.Web.SessionState.SessionStateModule" />
...
<pages validateRequest="false" enableViewStateMac="true" enableEventValidation="false" viewStateEncryptionMode="Always" enableSessionState="true" >
答案 0 :(得分:1)
错误之前:
我已将我的DNN网站添加为本地IIS服务器中的子目录,因此我的访问网址已变为http://localhost/WebsiteName/
。由于DNN核心库中的某些原因,它不能使用子目录并在我的本地计算机上遇到错误enableSessionState is set to true, either in a configuration file or in the Page directive
但是在实时,它在IIS服务器上安装为Default Web Site
。
错误已解决:
只需将我的网站从子目录替换为IIS服务器中的Default Web Site
即可。我没有收到任何错误。因此,现在访问网址变为http://localhost/
我检查了同一应用程序池中设置的两个网站以及相同的dotnet框架版本,但子目录网站不起作用,当我将其设置为默认IIS网站时,它可以工作。
对于此帖子的访问者:
如果你无法解决这个错误,你可以选择Cathal Connoly(DNN MVP)的答案。有关详细信息,请参阅此link。
看来,如果更改页面状态持久性,这将解析它(http://www.dnnsoftware.com/Content/Dn..。),或者在web.config中启用set enableSessionState为true