2017-01-12 5 views
0

У меня возникли проблемы с вызовом CheckUrlAccessForPrincipal (..) в UrlAuthorizationModule.HttpApplication.IntegratedModuleList is null

Это похоже на HttpApplication.IntegratedModuleList имеет значение null.

Мой web.config раздел вокруг модулей выглядит

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <modules runAllManagedModulesForAllRequests="true"> 
     <add name="InitializationModule" type="EPiServer.Framework.Initialization.InitializationModule, EPiServer.Framework" preCondition="managedHandler" /> 
     <add name="UrlRewriteModule" type="EPiServer.Web.RoutingUrlRewriteModule, EPiServer" preCondition="managedHandler" /> 
     <add name="ShellRoutingModule" type="EPiServer.Shell.Web.Routing.ShellRoutingModule, EPiServer.Shell" /> 
     <add name="BusinessFoundationInitializeModule" preCondition="managedHandler" type="Mediachase.Commerce.Core.Modules.BusinessFoundationInitializeModule, Mediachase.Commerce" /> 
     <add name="ProfileModule" type="EPiServer.Business.Commerce.HttpModules.ProfileModule, EPiServer.Business.Commerce" /> 
    </modules> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
     <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     <add name="ReportingHttpHandler" preCondition="integratedMode" path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </handlers> 
.... 
</system.webServer> 

Проблема возникла при переходе от MVC4 к MVC5, и пакеты, подключенный к этому. Я не знаю, имеет ли это что-то конкретное.

Мои NuGet пакеты является

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="AuthorizeNet" version="1.8.10" targetFramework="net45" /> 
    <package id="Castle.Core" version="3.3.3" targetFramework="net45" /> 
    <package id="Castle.Windsor" version="3.3.0" targetFramework="net45" /> 
    <package id="EntityFramework" version="6.1.3" targetFramework="net45" /> 
    <package id="EPiCode.SqlBlobProvider" version="1.4.2" targetFramework="net45" /> 
    <package id="EPiServer.CMS.Core" version="10.3.1" targetFramework="net45" /> 
    <package id="EPiServer.Commerce.Core" version="10.2.2" targetFramework="net45" /> 
    <package id="EPiServer.CommerceManager" version="10.2.2" targetFramework="net45" /> 
    <package id="EPiServer.Framework" version="10.3.1" targetFramework="net45" /> 
    <package id="EPiServer.Logging.Log4Net" version="2.1.0" targetFramework="net45" /> 
    <package id="log4net" version="2.0.3" targetFramework="net45" /> 
    <package id="Lucene.Net" version="3.0.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" /> 
    <package id="Microsoft.ReportViewer.Common" version="10.0.40219.1" targetFramework="net45" /> 
    <package id="Microsoft.ReportViewer.WebForms" version="10.0.40219.1" targetFramework="net45" /> 
    <package id="Microsoft.Tpl.Dataflow" version="4.5.24" targetFramework="net45" /> 
    <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" /> 
    <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net45" /> 
    <package id="SharpZipLib" version="0.86.0" targetFramework="net45" /> 
    <package id="SlowCheetah" version="2.5.14" targetFramework="net45" /> 
    <package id="structuremap.web-signed" version="3.1.6.186" targetFramework="net45" /> 
    <package id="structuremap-signed" version="3.1.9.463" targetFramework="net45" /> 
</packages> 

Я не знаю, если это web.config вещь, но я подозреваю, что это.

ответ

0

Проблема была в том, что код выполнялся до того, как был установлен контекст приложения. Пришлось проверить, не HttpContext.Current.ApplicationInstance == null