Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does Spring.NET support IIS Integrated Pipeline Mode? #196

Open
Exagram opened this issue Nov 18, 2020 · 0 comments
Open

Does Spring.NET support IIS Integrated Pipeline Mode? #196

Exagram opened this issue Nov 18, 2020 · 0 comments

Comments

@Exagram
Copy link

Exagram commented Nov 18, 2020

Issue: I switched from Classic to Integrated and Spring.NET fails with object creation.

Context: I debugged my application and my code is failing inside your library at a ConfigurationManager.GetSection() call.

Note: This was working well in IIS Classic Mode.

The Web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <!-- Config Section -->
  <configSections>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
    <sectionGroup name="spring">
      <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web" />
      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
    </sectionGroup>
  </configSections>
...
    <spring>
      <context>
        <resource uri="config://spring/objects" />
        <objects xmlns="http://www.springframework.net">...</objects>
      </context>
    </spring>

The code that triggers the crash:

appContext = Spring.Context.Support.ContextRegistry.GetContext();

The stack trace on Application_Start:

{"Error creating context 'spring.root': Request is not available in this context (C:\\webapp\\web.config line 287)"}{System.Configuration.ConfigurationErrorsException}

{"Request is not available in this context"}

   at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
   at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
   at System.Web.HttpContext.GetSection(String sectionName)
   at System.Web.Configuration.HttpConfigurationSystem.GetSection(String sectionName)
   at System.Web.Configuration.HttpConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String configKey)
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at Spring.Util.ConfigurationUtils.GetSection(String sectionName) in c:\_prj\spring-net\src\Spring\Spring.Core\Util\ConfigurationUtils.cs:line 68
   at Spring.Context.Support.ContextRegistry.InitializeContextIfNeeded() in c:\_prj\spring-net\src\Spring\Spring.Core\Context\Support\ContextRegistry.cs:line 388
   at Spring.Context.Support.ContextRegistry.GetContext() in c:\_prj\spring-net\src\Spring\Spring.Core\Context\Support\ContextRegistry.cs:line 252
   at WebApp.Global.LoadSpringContainer() in C:\WebApp\Global.asax.cs:line 107
   at WebApp.Global.Application_Start(Object sender, EventArgs e) in C:\WebApp\Global.asax.cs:line 41

   at Spring.Util.VirtualEnvironment.HttpRuntimeEnvironment.RewriteContext..ctor(String virtualDirectory, Boolean rebaseClientPath) in c:\_prj\spring-net\src\Spring\Spring.Web\Util\VirtualEnvironment.cs:line 254
   at Spring.Util.VirtualEnvironment.HttpRuntimeEnvironment.RewritePath(String virtualDirectory, Boolean rebaseClientPath) in c:\_prj\spring-net\src\Spring\Spring.Web\Util\VirtualEnvironment.cs:line 341
   at Spring.Util.VirtualEnvironment.RewritePath(String newVirtualPath, Boolean rebaseClientPath) in c:\_prj\spring-net\src\Spring\Spring.Web\Util\VirtualEnvironment.cs:line 467
   at Spring.Util.HttpContextSwitch..ctor(String virtualDirectory) in c:\_prj\spring-net\src\Spring\Spring.Web\Util\HttpContextSwitch.cs:line 87
   at Spring.Context.Support.WebContextHandler.InstantiateContext(IApplicationContext parent, Object configContext, String contextName, Type contextType, Boolean caseSensitive, IList`1 resources) in c:\_prj\spring-net\src\Spring\Spring.Web\Context\Support\WebContextHandler.cs:line 121
   at Spring.Context.Support.ContextHandler.Create(Object parent, Object configContext, XmlNode section) in c:\_prj\spring-net\src\Spring\Spring.Core\Context\Support\ContextHandler.cs:line 288


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant