我正在使用Microsoft Commerce Server 2007和自定义ASP.NET 2.0网站。在Classic Pipeline中一切运行良好,但是当我尝试使用Integrated管道时,它会因以下错误而失败:
>应用程序中的服务器错误。请求在此上下文中不可用
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Web.HttpException:请求在此上下文中不可用
来源错误:
在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
堆栈追踪:
[HttpException(0x80004005):请求在此上下文中不可用]
System.Web.HttpContext.get_Request() +8794400 Microsoft.CommerceServer.Runtime.Orders.CommerceOrderModule.Init(HttpApplication appInstance)+134
System.Web.HttpApplication.InitModulesCommon() +65 System.Web.HttpApplication.InitIntegratedModules() +49 System.Web.HttpApplication.InitInternal(HttpContext context,HttpApplicationState状态, MethodInfo []处理程序)+729
System.Web.HttpApplicationFactory.GetNormalApplicationInstance(HttpContext的 上下文)+298
System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext的 上下文)+107
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+363
我已经尽力研究这个,这肯定是由于Commerce Server在没有当前请求时尝试访问HttpContext.Current。这一切都发生在我的代码中的任何内容之前,并且没有什么可以破解或任何源代码来查看。我甚至尝试将调试器附加到IIS进程(w3wp.exe),但它没有捕获任何内容。
我已按照说明Here添加了web.config部分,但它没有任何区别。
我在不同的服务器上使用Commerce Server在Integrated Pipeline模式下有一个不同的网站没有问题,所以我知道这是可能的。我找不到两个web.config文件之间的显着差异,所以我假设它是其他地方的配置错误,但我不知道在哪里看。
至关重要的是,出于性能原因,我可以在Integrated Pipeline模式下工作,而且我正在创建一个自定义URL重写HTTP模块,该模块仅适用于集成管道。
提前感谢您的帮助!