问题标签 [integrated-pipeline-mode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3124 浏览

asp.net - 使用集成管道时,经典 ASP Request.Form 不起作用

我有一个大公司。当前使用 Win 2003 服务器 IIS 6 托管的混合了经典 asp 和 asp.net 的网站。

无论它们来自哪个世界,我都需要通过一些 html 修改来修改所有页面输出。asp 部分真的很旧而且结构很糟糕,因此我不能对任何类型的“一般包含”采取行动来应用我们需要的所有更改。最后,一些 asp 页面从多个 OCX/COM 对象输出代码......我们已经在计划整个重写/迁移到 .net,但不幸的是,这是一个长期项目,我无法快速完成。

所以我正在考虑(和测试)将它迁移到 Win 2008 R2、IIS 7.5 并利用集成管道模式,我可以使用 .net httpmodule 修改所有输出。一切正常:我可以正确地将 html 代码“注入”到通过 asp 和 asp.net 呈现的页面,但是当经典的 asp 页面要处理通过 post 发送的表单数据时我遇到了问题(x-www-form-urlencoded ) 模块。

似乎经典的 asp 在使用集成管道模式时根本缺少 Request.Form 对象,每次使用都会抛出错误“80004005”;Request.QueryString 相反,它工作正常。

我不会切换回经典管道模式,因为我将失去修改经典 ASP 呈现的页面的好处。在这里使用 Isapi 过滤器是一场噩梦,我不会进入那个方向。

有谁知道在集成管道模式处于活动状态时让 Request.Form 为经典 asp 工作的任何解决方法 - 或者 - 在使用经典管道时修改来自经典 asp 的最终呈现页面输出的任何方法,以便我可以在发送之前使用 .net 代码对其进行修改它到浏览器?

谢谢你的帮助,Squiffy

编辑:不幸的是,我们从未找到解决此问题的方法。与此同时,我们使用许多现代解决方案从头开始完全重建了网站(耶!)。谢谢大家的帮助!

0 投票
1 回答
3173 浏览

asp.net - IIS 7.5 不在集成管道模式下提供默认文档?

更改前:

我的网站local.Mywebsite.com托管在我的本地 IIS 7.5 中。该网站在.net 4.0 版中运行,并且 IIS 应用程序池处于集成管道模式。它工作得很好。

我可以将 local.Mywebsite.com/default.aspx 浏览local.Mywebsite.com意味着 IIS 按照我的配置提供默认文档。

改变:

我需要在我的网站中包含另一个应用程序Foo作为虚拟目录。我添加了它,并且能够浏览并使用与local.Mywebsite.com/Foo/Mypage.aspx相同的完整路径。

然后我为我的Foo虚拟目录配置了一个默认文档。

我的问题:

我尝试浏览到local.Mywebsite.com/Foo/

我收到一个错误:

现在 IIS 不为我的Foo虚拟目录提供默认文档。

但仍然可以浏览local.Mywebsite.com,IIS 在这里提供默认文件。

任何人有任何想法或任何建议都将受到高度赞赏。

更新:

当我将文件Mypage.aspx重命名Default.aspx时,IIS 可以很好地提供默认文档。通过浏览local.Mywebsite.com/Foo/可以看到default.aspx页面。

我的网络配置:

0 投票
1 回答
1074 浏览

php - 我们如何在具有 IIS 集成管道模式的 ASP.NET Web 应用程序中运行 PHP 文件?

我们在 Microsoft IIS 7.5 Web 服务器上部署了一个 ASP.NET Web 应用程序。我们的服务器是 Windows 2008 R2 标准。

我们试图在我们的 Windows 2008 R2 标准服务器上安装 PHP。

为了高度了解我们的应用程序和服务器的配置方式,我们决定按照与以下 URL 链接相关的指南中的步骤在 Windows 2008 R2 标准服务器上手动安装 PHP:

http://www.iis.net/learn/application-frameworks/scenario-build-a-php-website-on-iis/configuring-step-1-install-iis-and-php#13

我们的 PHP 是手动安装在 C:\PHPNonthreadsafe5p5 目录中的。

我在 ASP.NET 应用程序中放置了一个 PHP 文件。PHP 文件放置在以下目录中:

D:\blahblah\ASPNETWebApplication\PHPModules\Phpinfo.php

但是,当我们输入以下 URL 时,我收到 500 internal Server 错误:

https://blahblah.blah.blah.com/PHPModules/Phpinfo.php

我在带有 IIS 7.5 的 Windows Server 2008 R2 标准服务器上安装了 PHP 5.5。请说明如何在集成模式的 ASP.NET Web 应用程序中运行 PHP 文件。

0 投票
1 回答
1182 浏览

asp.net - SessionStateModule 与 runAllManagedModulesForAllRequests="true"

目前我已经runAllManagedModulesForAllRequests="true"设置了属性,所以我的模块正在为所有请求运行。我想这包括SessionStateModule.

当尝试在PostAcquireRequestState我的一个自定义模块中的事件处理程序中访问会话对象时,HttpContext.Current.Session当为空时HttpApplication.Context.CurrentHandler为空(例如:对于 JS/CSS 文件),当处理程序为空时它不为空MvcHandler(因为它是我猜是托管处理程序)。

我一直在查看SessionStateModuleILSpy 中的代码,但找不到为该请求决定跳过 Session 的地方。

我一直在寻找,%windir%\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config没有提及SessionStateModuleWeb.config在那个文件夹中我发现:

所以它没有使用任何先决条件,如managedHandler.

有谁知道为什么SessionStateModule即使runAllManagedModulesForAllRequests设置了属性也会跳过对非托管资源的请求?

干杯。

0 投票
1 回答
1635 浏览

asp.net-mvc - DotNetOpenAuth 中的 NullReferenceException

我在我的 ASP.NET MVC 应用程序中找到了导致 NullReferenceException 的缺陷。我打破了这个,还是应该打破大多数安装的 DotNetOpenAuth?

我明白了:

这是Index()方法。请注意,它目前在生产中返回用户,在开发中返回OK。这些显然是暂时的。注释代码来自我在下面引用的最后一个 URL,在那里我减少了我和问题之间的代码量。不过,堆栈跟踪仍然相似。

出现异常是因为HttpContext.User为空。这是该失败方法的DotNetOpenAuth.AspNet库源

User自从 IIS 集成模式可用以来,显然已经可以为空。这解释了为什么我在开发中看不到它,因为我正在使用默认值运行 IIS Express,但它没有解释为什么我找不到有关该缺陷的任何信息。集成模式于 2007 年发布,DotNetOpenAuth 仍在维护。Microsoft 文档对设置进行了说明:

经典模式:仅当应用程序池中的应用程序无法在集成模式下运行时才使用此模式。

我一定遗漏了一些东西,因为似乎每个人都应该有这个问题。

我是否以某种方式 NuGet 了一个非维护的库?这似乎很奇怪,因为它显示它是一周前刚刚更新的。但是,当我按照 NuGet 的文档链接进行操作时,我得到的源代码似乎甚至没有一个 AspNet 命名空间,我的异常就出现在这里。

编辑:我目前使用的唯一相关包是DotNetOpenAuth.AspNet(它有 8 个依赖项),最后一次发布不到一周前。我也尝试过其他软件包。我不需要SimpleAuth或任何 WebMatrix 爵士乐。在解决这个问题的过程中,我尝试按照http://techblog.dorogin.com/2013/06/Microsoft.AspNet.WebPages.OAuth.html的描述切换库

编辑:记录了与此相关的缺陷,但似乎该库可能无法维护。https://github.com/DotNetOpenAuth/DotNetOpenAuth/issues/317#issuecomment-29580565

编辑:等待堆栈跟踪,它可能与MVC 5 Owin Facebook Auth 的缺陷相同,导致空引用异常

0 投票
1 回答
485 浏览

asp.net-mvc - Mvc 3 应用程序随机停止(特别是在回收后) IIS 7.5 集成模式

我们有一个在 IIS 7 下工作的 MVC 3 应用程序,并且应用程序池托管管道模式是集成的。

此应用程序突然变得不稳定,这意味着会出现如下错误。

这也是我们的 global.asax.cs 代码,我想知道这段代码有什么问题;

0 投票
1 回答
35 浏览

asp.net - IIS 7.5为什么会多次构建一个页面

我承认我已经发布了一个关于我正在观察的现象的问题,但是经过更多的研究后,我从一个稍微不同的角度来这里,并以不同的方式标记它:

我有一个页面——WorkflowDetail.aspx——由一个类文件——WorkFlowDetail.aspx.vb支持。该类从继承自Spring.Web.UI.Page的BaseClass1继承(BaseClass1没有关联的 ASPX,只有一些常见的属性和方法)。

我在WorkFlowDetailNew()方法中设置了一个断点。我发现当我在浏览器中打开页面时,构造函数会运行多次。我很想知道谁在运行它以及为什么运行它,但堆栈只显示“ [外部代码] ”。

如果我没有尝试让Spring将 DAO 属性注入页面,这只不过是一种无聊的好奇心,或者最多是一个小烦恼。发生的情况是Spring进行了注入(当调试器在New()中停止时,可以看到堆栈上的所有Spring方法),但是随后由“ [外部代码] ”创建了一个新的页面副本,这样当它开始访问它为null的 DAO 属性,因为这是与注入属性的页面不同的页面实例。

这一切都发生在IIS 7.5 Integrated和针对.NET 4.0的VS2010中内置的Web 应用程序中。在SpringNorthwind示例的页面中设置类似的断点,这是一个针对.NET 3.5的网站,当Spring实例化该页面时它会被命中,仅此而已。

有人能告诉我是什么导致了这些额外的实例化,或者我怎么能找到?

0 投票
11 回答
135848 浏览

asp.net - “此操作需要IIS集成管道模式。”

我在 Windows 8.1、.NET 4.5.1、IIS 8.5(在 Integrated AppPool 下)、Visual Studio 2013 上开发了一个 Web 应用程序,默认模板包括 ASP.NET Identity、Owin 等,并且在本地运行良好。

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

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

异常详细信息:
System.PlatformNotSupportedException:此操作需要 IIS 集成管道模式。

堆栈跟踪:

除了指导读者将管道从经典模式更改为集成模式外,我找不到任何东西,我已经这样做了,但没有成功。

我能做些什么来解决这个问题?“Microsoft.Owin.Host.SystemWeb”不喜欢 IIS 7.5 吗?

0 投票
0 回答
184 浏览

asp.net - 在不触及应用程序池或集成模式配置的情况下解决 500.23 集成管道错误

我正在运行一个开发环境,在该环境中我有多个在 IIS 7.5 和 ASP.NET 4.0 上运行的站点。

我不得不更新其中一些环境,现在我收到了我们都喜欢的可怕信息:

HTTP 错误 500.23 - 内部服务器错误
检测到不适用于集成托管管道模式的 ASP.NET 设置。

然而 。. . 我的所有环境都在集成模式下运行 ASP.NET 4.0,并且没有一个将 validateIntegratedModeConfiguration 设置为“false”。

我知道有一种方法可以在不触及这些配置中的任何一个的情况下解决这个问题,但我在任何地方都找不到。 我看到的每一个解决方案都告诉我要更改一个或另一个配置,而我不想任何一个。

如果我所有的其他环境都在使用这些配置,那么某处必须有另一个设置。

有人可以帮我解决这个问题吗?

请不要告诉我“从集成更改为经典”或“将 validateIntegratedModeConfiguration 更改为 false”;我不会接受任何一个答案!!!

提前致谢 。. .

0 投票
1 回答
863 浏览

asp.net - 如何通过 IIS 7.5 使用集成管道模式与 ASP.Net 应用程序连接到 Oracle 数据库?

我已阅读建议从 ASP.Net Web 应用程序的 web.config 文件中删除数据库连接字符串的用户名/密码,而是使用 IIS 应用程序池标识来验证对数据库的访问。

虽然这很容易做到,并且是使用活动目录服务帐户连接到 Microsoft SQL Server 数据库的简单过程,但从我对这个问题所做的研究来看,连接到 Oracle 数据库的过程并不相同。

我们不知道如何使用 IIS 7.5 集成托管管道模式连接到 Oracle 数据库。我们希望使用集成安全性,因为我们不想在 ASP.Net 网站的 web.config 文件的连接字符串中包含 Oracle 数据库用户名和密码。

我们还希望避免恶意用户“欺骗”Windows 帐户的可能性,如果发现与 Windows 帐户匹配的 Oracle 数据库帐户,则给予他们对 Oracle 的 sys.admin 访问权限。

通过 IIS 7.5 使用集成管道模式与 ASP.Net 应用程序连接到 Oracle 数据库的行业标准是什么?

这是如何完成的,以便从 web.config 文件中删除 Oracle 数据库用户名和密码?