我在Windows 8.1上开发了一个web应用程序.NET 4.5.1、IIS 8.5(在Integrated AppPool下)、Visual Studio 2013中包含ASP.NET身份、Owin等,并且在本地运行良好.

然后,我使用IIS 7.5(集成管道)主机将其上载到Windows Server 2008,得到:

此操作需要IIS集成管道模式.

Exception Details:
System.PlatformNotSupportedException: 此操作需要IIS集成管道模式.

100

[PlatformNotSupportedException: 此操作需要IIS集成管道模式.]
  System.Web.HttpResponse.get_Headers() +9687046
  System.Web.HttpResponseWrapper.get_Headers() +9
  Microsoft.Owin.Host.SystemWeb.OwinCallContext.CreateEnvironment() +309
  Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.GetInitialEnvironment(HttpApplication application) +246
  Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.PrepareInitialContext(HttpApplication application) +15
  Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.BeginEvent(Object sender, EventArgs e, AsyncCallback cb, Object extradata) +265
  System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +285
  System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

除了指导读者将管道从classic 模式更改为集成模式之外,我什么也找不到,我已经这样做了,但没有成功.

我能做些什么来解决这个问题?"Microsoft.Owin.Host.SystemWeb"不像IIS 7.5或其他什么吗?

推荐答案

这是一个奇怪的问题,因为我的主机IIS不应该抱怨它需要集成管道模式,而它已经处于该模式,正如我在问题中所说的那样:

我搜索了很多,除了指导读者将管道从classic 模式更改为集成模式外,什么都找不到..

使用Levi's个方向,我将<%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %><%: System.Web.Hosting.HttpRuntime.IISVersion %>*放在一个空的ASPX页面上,告诉我的主机发生了什么,并要求他们修复问题并使用我上传的页面确认问题……我经常判断页面的状态是否有什么变化,我可以看到他们花了3-4个小时才解决这个问题……

当我问他们做了什么来解决这个问题时,他们的回答有点"机密",因为他们说:

我们的团队对服务器进行了必要的更改

问题出在我的主人身上.

*Update:如 comments 中所述的Ben

  1. <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %>
  2. <%: System.Web.Hosting.HttpRuntime.IISVersion %>

不再有效,它们现在是:

  1. <%: System.Web.HttpRuntime.UsingIntegratedPipeline %>
  2. <%: System.Web.HttpRuntime.IISVersion %>

Asp.net相关问答推荐

使用 aspnet core SignalR 客户端为 VSIX 项目.

Web 部署工具 2.1 和 Web 部署 3.5 有什么区别?从 VS 2010 部署需要哪一个?

如何调试 Azure 500 内部服务器错误

在 C# 中以编程方式添加元标记

在控制器 asp.net mvc 5 的视图上显示错误消息

HttpContext.Current.Request.IsAuthenticated 和 HttpContext.Current.User.Identity.IsAuthenticated 有什么区别?

在使用网络服务器加载它们之前,如何编译 Asp.Net Aspx 页面?

asp.net 中的 Eval() 有什么用

带有 ASP.NET MVC 6 锚标记助手的 QueryString

使用 ASPNet_Regiis 加密自定义配置部分 - 你能做到吗?

捕获的异常本身为 null !

ASP.Net 错误:应用程序池的标识无效

ASP.NET 身份提供程序 SignInManager 不断返回失败

我可以在 .NET Framework 4.0 上运行 MVC 5 应用程序吗?

DateTime.Parse 和 Convert.ToDateTime 之间有什么区别?

如何解决我的 ASP.Net MVC 应用程序中的 iisreset 后发生的 AntiForgeryToken 异常?

为什么 IFormFile 显示为空,我该如何解决?

在 Visual Studio 2013 中更改项目端口号

System.Web.Caching 还是 System.Runtime.Caching 更适合 .NET 4 Web 应用程序

Facebook 连接和 ASP.NET