使用我们的umbraco网站的后端几个月后,我开始再次开发我们的网站。由于某些人正在使用该网站,我决定使用暂存环境。 所以我移动了所有文件,最后还克隆了数据库。
但是现在每当我尝试登录umbraco的后端时(在实时和暂存环境中),我的firebug控制台都会出现javascript错误:
{"Message":"The user has no umbraco contextid - try logging in","StackTrace":" at Umbraco.Web.Security.WebSecurity.ValidateCurrentUser(HttpContextBase httpContext, Boolean throwExceptions)\r\n at Umbraco.Web.Security.WebSecurity.AuthorizeRequest(HttpContextBase httpContext, Boolean throwExceptions)\r\n at Umbraco.Web.WebServices.UmbracoAuthorizedWebService.AuthorizeRequest(Boolean throwExceptions)\r\n at Umbraco.Web.WebServices.UmbracoAuthorizedWebService.AuthorizeRequest(String app, Boolean throwExceptions)\r\n at umbraco.presentation.webservices.TreeClientService.GetInitAppTreeData(String app, String treeType, Boolean showContextMenu, Boolean isDialog, TreeDialogModes dialogMode, String functionToCall, String nodeKey)","ExceptionType":"System.InvalidOperationException"}
正如其他帖子中所建议的那样,我删除了我的Cookie并重试,但没有运气。
我还会不时收到其他错误:
uiKeys未定义
我使用二进制文件上传了我的umbraco / config / lang文件夹,但有时我仍然会收到错误
viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保配置指定相同的validationKey和验证算法。无法在群集中使用AutoGenerate。
我将此添加到我的web.config
<pages enableEventValidation="false" validateRequest="false" viewStateEncryptionMode ="Never" />
并且错误似乎消失了
我在注销页面开头的文档类型声明中也遇到一些关于synthax的错误,我被重定向到
我已经在这几个小时了,似乎无法修复它。
本地登录工作。
修改
我刚刚安装了6.1.6和6.1.5并尝试登录,但仍然收到错误消息: http://staging.mydomaimn.com/umbraco/webservices/TreeClientService.asmx/GetInitAppTreeData 500内部服务器错误: {“Message”:“用户没有umbraco contextid - 尝试登录”,“StackTrace”:“在Umbraco.Web.Security的Umbraco.Web.Security.WebSecurity.ValidateCurrentUser(HttpContextBase httpContext,Boolean throwExceptions)\ r \ n .WebSecurity.AuthorizeRequest(HttpContextBase httpContext,Boolean throwExceptions)\ r \ n在Umbraco.Web.WebServices.UmbracoAuthorizedWebService.AuthorizeRequest(Boolean throwExceptions)\ r \ n在Umbraco.Web.WebServices.UmbracoAuthorizedWebService.AuthorizeRequest(String app,Boolean throwExceptions) \ r \ n在umbraco.presentation.webservices.TreeClientService.GetInitAppTreeData(String app,String treeType,Boolean showContextMenu,Boolean isDialog,TreeDialogModes dialogMode,String functionToCall,String nodeKey)“,”ExceptionType“:”System.InvalidOperationException“}
这是一个以前从未登录过的全新安装 问题可能在于数据库设置。我的主机使用MSSQL 2012,我有两个数据库,第一个用于实时版本,称为“myloginname”,第二个用于暂存,称为“myloginname_1”。 将登录放入数据库(我读Umbraco的时候)是_1的问题吗?
修改2
刚查看我的数据库,Umbraco确实在db表'umbracoUserLogins'中创建了一个contextId但是没有创建应该包含相同'UMB_UCONTEXT'的cookie
所以这可能是我真正的问题,可能导致这个问题?
编辑:有关此内容的更多信息: 当我看到提琴手时,我可以看到: 在“原始”标签上:
HTTP / 1.1 302 Found Cache-Control:private Content-Type:text / html; charset = utf-8位置:/ umbraco / Set-Cookie: ASP.NET_SessionId = zjlqfoxq421wmnpeydcbxv1t;路径= /;仅Http Set-Cookie:ASP.NET_SessionId = zjlqfoxq421wmnpeydcbxv1t;路径= /; HttpOnly Set-Cookie:UMB_UCONTEXT = 694C3 [......很多文字......] CFDD5EDB; expires = Tue,12-Nov-2013 14:07:23 GMT;路径= /; HttpOnly日期:星期一,11 2013年11月14:07:23 GMT内容长度:126
Cookie标签显示:
响应发送了1318个字节的Cookie数据:Set-Cookie: UMB_UCONTEXT = 694C3 [......很多文字......] D5EDB;到期= 2013年11月12日星期二 格林尼治标准时间14:07:23;路径= /; HttpOnly此响应不包含P3P 报头中。
所以我们可以得出结论:
答案 0 :(得分:1)
我能解决这个问题。 未创建UMB_UCONTEXT cookie的原因是我修复了错误
错误的方式。正如How To Fix the: “Validation of viewstate MAC failed” Error (ASP.NET MVC)所示,我需要创建一个随机机器密钥并将其添加到我的web.configviewstate MAC验证失败。如果此应用程序由a托管 Web场或群集,确保配置指定相同 validationKey和验证算法。无法使用AutoGenerate 集群。