问题标签 [httpapplication]

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 投票
3 回答
7050 浏览

c# - 对 HttpApplication 进行单元测试

我有一个派生自 HttpApplication 的类,它添加了一些额外的功能。我已经到了需要对这些功能进行单元测试的地步,这意味着我必须能够创建 HttpApplication 的新实例、伪造请求并检索响应对象。

我该如何对 HttpApplication 对象进行单元测试?我目前正在使用 Moq,但我不知道如何设置所需的模拟对象。

0 投票
3 回答
2203 浏览

c# - Global.asax 问题

我正在开发一个 HttpModule 并使用 Global.asax。我开发了一个派生自 HttpApplication 的类,但我的类的 Application_Start 方法从不执行(我在 Application_Start 的开头创建了一个文件,但该文件从不创建,这就是我认为 Application_Start 从不执行的原因)。我正在使用 VSTS2008 + C# + .Net 3.5。

任何想法有什么问题以及如何调试?我想确认我应该将 Global.asax 复制到我的网站虚拟目录的根目录中,对吗?我应该在 web.config 中配置任何内容以让 HttpModule 运行吗?

0 投票
2 回答
2221 浏览

c# - C# ASP.NET HttpModules:HttpApplication 事件

我的 Web 应用程序中有一个 HttpApplication (Global.asax),我使用它来捕获和记录未处理的异常并设置 WebFormURLRouting。这一切都有效,但是我想将此代码移动到我的应用程序框架中(即不在 Global.asax.cs 中)

我刚刚尝试在框架中创建一个 HttpApplication 类,但似乎我无法覆盖事件?无论如何,我相信我可以使用 HttpModule 来使用这些事件,这样做:

1) 完全消除对 Global.asax 的需求?

2)这种影响如何扩大,即最终在网络农场上运行应用程序

3) 我有 HttpHandlers 来处理文件上传和文件下载等其他事情,是否应该使用多少个 HttpModule/HttpHandlers 或者应该以某种方式组合这些以减少开销?

任何意见表示赞赏

0 投票
1 回答
895 浏览

asp.net - IIS6 中 ASP.NET 中静态 *.JS 文件的 Application_BeginRequest?

我正在尝试做一些看似简单的事情:确保为发送到我的 IIS6 网站的每个静态 *.JS URL 调用 Application_BeginRequest,无论底层文件是否存在。

什么是在 IIS6 和 ASP.NET 3.5 上执行此操作的好方法,理想情况下不会导致所有静态文件通过 ASP.NET——只有 .JS URL?

如果您对原因感到好奇,我正在使用一个现有的应用程序,该应用程序使用 Application_BeginRequest 进行自定义重定向和路径重写。以这种方式实现它并不是我的第一选择,但考虑到那里有什么,我也想将它扩展到涵盖 .JS,而不是包含另一种不同的重定向/重写方法(例如 IIS 重定向配置、重写模块等.) 这可能会使应用程序的部署和测试变得复杂,尤其是在 IIS6 上。

我知道这里的 IIS7 故事要好得多(尤其是围绕配置、模块等的 XCOPY 部署),但我现在无法升级这个应用程序。

0 投票
1 回答
1288 浏览

asp.net - 如何在 ASP.NET-MVC 中显示自定义 404 页面?

当我网站上的任何 URL 为 404 时,我想显示一个使用 ASP.NET-MVC 呈现的自定义 404 页面。但是我不想使用通配符路由方法,因为这会禁用标准网络表单。我的代码目前如下所示:

此代码在 App_Error 中

//1 确实有效。Test.aspx 是一个标准的网络表单

//2 不起作用,因为它是一个 asp.net-mvc 路由

如何使 MVC 路由工作?

0 投票
2 回答
1846 浏览

asp.net - 如何为 ASP.Net 创建准系统 HttpApplication(没有 Webforms 或 MVC)

好的,我想了解更多关于 ASP.Net 如何在后台工作的信息。我的意思是在 MVC 或 Webforms 和其他此类框架之下。

基本上我想知道这些框架是如何连接到 ASP.Net 上的,以便它们与 IIS 一起工作。创建一个与 IIS 一起工作且既不使用 MVC 也不使用 Webforms 的简单 HttpApplication 的最低要求是什么?Web.config 中的最低要求是什么?Global.asax 中会添加什么?

0 投票
3 回答
2369 浏览

asp.net - Application_Start 与 OnInit 与构造函数

自从我几年前开始编写经典的 ASP 12 (左右)以来,我一直在考虑这个问题,但我从来没有找到一个很好的解决方案,因为 ASP 和 ASP.NET 的体系结构一直是一个糟糕的实践,魔法共享单身人士等。我最大的问题是HttpApplication对象及其非事件事件(Application_Start,Application_End等)。

如果您想在 HTTP 应用程序的整个生命周期内只做一次事情,Application_Start那么显然是这样做的地方。对?不完全是。首先,这本身不是一个事件,它是一个神奇的命名约定,当遵循它时,会导致每个由 IIS 创建的 AppDomain 调用一次该方法。

除了魔术命名约定是一种可怕的做法之外,我开始认为这可能是对象上不存在Start事件这样的事情的原因HttpApplication。因此,我尝试了确实存在的事件,例如Init. 好吧,这也不是一个真正的事件,它是一个可覆盖的方法,这是次优的。

似乎Init()每次实例化对象都会调用该方法,HttpApplication每个 AppDomain 不止一次发生这种情况。这意味着我不妨把我的启动逻辑放在HttpApplication对象的构造函数中。

现在我的问题是,为什么我不应该将我的启动逻辑放在构造函数中?为什么甚至Init()存在,我需要关心Application_Start吗?如果我这样做了,谁能解释为什么HttpApplication对象中的这个伪事件没有适当的事件或可覆盖的方法?

任何人都可以向我解释为什么在一个典型的 ASP.NET 应用程序中,创建了 8 个 my 实例HttpApplication(当然,这会导致构造函数和Init运行多次;这可以通过锁定和一个名为 的共享静态布尔值来缓解initialized)当我的应用程序只有一个 AppDomain 时?

0 投票
2 回答
676 浏览

.net - 引用 MSDN 关于 System.Web.HttpApplication

引自http://msdn.microsoft.com/en-us/library/4wt3wttw.aspx

HttpApplication 类的一个实例用于在其生命周期中处理许多请求。但是,它一次只能处理一个请求。因此,成员变量可用于存储每个请求的数据

为什么要按请求?也许每组请求?似乎成员变量可用于在 HttpApplication 的整个生命周期中存储数据。因此,在第二个(对于此 HttpApplication)请求开始时 HttpApplication 的状态等于在第一个(对于此 HttpApplication)请求结束时的状态。

为什么要按请求?

0 投票
1 回答
381 浏览

asp.net - 更改响应源的最佳 HttpApplication 事件

我打算构建一个HttpModule以扫描响应的来源并进行小的调整,主要是更改 url(hrefs、actions、srcs 等)。

我看到HttpApplication有大量可以处理的事件,我不确定在哪个阶段可以安全地更改返回到浏览器的 HTML 内容。

我需要在 a 中执行此操作,HttpModule因为这是一个应用程序范围的处理,使我不必在每个页面中编写相同的代码。

0 投票
1 回答
565 浏览

asp.net-mvc-2 - Application_BeginRequest() 之前的 ASP.NET 间歇性滞后

我正在使用 ASP.NET MVC 2。在调试模式下,在 Global.asax 中命中 HttpApplication_BeginRequest() 之前,对服务器的每个其他请求都有一个非常一致的 5-10 秒延迟

每隔一个请求就会发生这种情况。在发布模式下它总是很快,但它导致我在调试模式下测试东西时出现问题。我查看了调用堆栈,但 HttpApplication_BeginRequest() 之前的唯一内容是“外部代码”,所以我不知道发生了什么。我怎样才能找出是什么在管道中引入了这种滞后?谢谢。