2016-11-24 160 views
0

我在嘗試通過Nuget或手動,合併文件等進行升級時遇到了問題。我最終得到的結論是,當我啓動第一個網站時本地時間使用http://localhost:81(這在升級前工作正常),我不斷收到下面的錯誤消息。從Umbraco 7.1.9升級到7.5.4的問題

正在被重定向的URL如下:

http://localhost:81/install?redir=true&url=http%3a%2f%2flocalhost%3a81%2f

如果我嘗試訪問後端我也得到了同樣的信息。我下載了一個Umbraco源代碼的副本,並且在調試時可以在Umbraco.Web文件WebSecurity.cs中看到,方法IsAuthenticated()對_httpContext.User顯示爲空。

任何想法可能是什麼問題?

[NullReferenceException: Object reference not set to an instance of an object.] 
    Umbraco.Web.Security.WebSecurity.IsAuthenticated() +19 
    Umbraco.Web.Security.WebSecurity.ValidateCurrentUser(Boolean throwExceptions) +17 
    Umbraco.Web.Install.Controllers.InstallController.Index() +142 
    lambda_method(Closure , ControllerBase , Object[]) +35 
    System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14 
    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +157 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22 
    System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +29 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32 
    System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +50 
    System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225 
    System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225 
    System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225 
    System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225 
    System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225 
    System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225 
    System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225 
    System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225 
    System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34 
    System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26 
    System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100 
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27 
    System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36 
    System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26 
    System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 
    System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9644097 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155 
+0

您好,我從一把umbraco 7.6.6升級到任何更高版本時有相同的錯誤。試過7.7.7,7.6.11和7.6.7,都顯示這個錯誤。即時通訊使用結構圖,但解決方案@rybl sugested並不適合我。我已經在我的全球asax中使用了默認的UmbracoApplication。你可能找到了不同的解決方案嗎? Thtnx – Pierre

回答

0

仔細檢查web.config文件的成員資格提供程序部分是否已正確合併。我認爲這些版本之間有一些用戶更改,有些位稍有改變?我也會清除你的cookies,以防萬一,因爲有時我在升級後遇到了UmbracoContext cookies問題。

+0

感謝您的信息。我仔細檢查了會員供應商部分,所有事情都應該與之前的版本和新的7.5.4版本進行比較。我也清除了我的Cookie,並確保我使用Chrome的隱身模式,但仍然存在問題。 –

0

我遇到了同樣的問題,想分享我的經驗。

我發現問題是我使用自定義的UmbracoApplication實現來執行依賴注入。

我相信安裝過程必須使用應用程序通常不使用的一些依賴項。

要解決此問題,我將Global.asax更改爲默認的UmbracoApplication類。然後,數據庫更新後,我切換回我的自定義類。

我確定有一個更好的方法來解決這個問題,但我想記錄我發現的情況,以防萬一有人遇到同樣的問題,並希望找到正確的方向或快速修復。

我的代碼如下:

<%-- Live App --%> 
<%@ Application Inherits="Foo.WebsiteUmbracoApplication" Language="C#" %> 
<%-- For Umbraco DB Updates --%> 
<%--<%@ Application Inherits="Umbraco.Web.UmbracoApplication" Language="C#" %>--%> 
using System; 
using System.Web.Http; 
using System.Web.Mvc; 
using Umbraco.Web; 

namespace Foo 
{ 
    public class WebsiteUmbracoApplication : UmbracoApplication 
    { 
     protected override void OnApplicationStarted(object sender, EventArgs e) 
     { 
      base.OnApplicationStarted(sender, e); 

      ConfigureDependencyInjection(); 
      ConfigureFormatters(); 
     } 

     private static void ConfigureDependencyInjection() 
     { 
      var container = UnityConfig.ConfiguredContainer; 
      // MVC 
      DependencyResolver.SetResolver(new Microsoft.Practices.Unity.Mvc.UnityDependencyResolver(container)); 
      // Web API 
      GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container); 
     } 

     private static void ConfigureFormatters() 
     { 
      var formatters = GlobalConfiguration.Configuration.Formatters; 
      formatters.Remove(formatters.XmlFormatter); 
     } 
    } 
}