问题标签 [global-asax]

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 回答
631 浏览

asp.net - ASP.Net 页面的全局时序

我刚刚继承了一个我需要维护的由其他人编写的网站(ASP.Net 2.0)。
该代码并不可怕,但它有许多使网站运行缓慢的东西。

我有一个想法来监控这个,我想看看更有经验的开发人员是怎么想的。

我现在的目标是找出页面加载时间过长,将注意力集中在这些地方。

我正在考虑在 Global.asax 中挂钩 PreRequestHandlerExecute 和 PostRequestHandlerExecute 事件,并在“Pre”中创建一个 StopWatch,将其附加到 HttpContext.Items,并在“Post”中读取它,如果请求超过,比如说, 100ms,它会向我报告让我知道。

一些“伪代码”将是:

您如何看待这种方法?
这样做合理吗?
它会让我的网站爬行吗?
有一个更好的方法吗?

一些想法:
- 抓住 DateTime.Now.Ticks 并存储它可能会更好,这可能会比 StopWatch 更轻
- 我知道让所有页面都继承自我自己的页面会更好,并且时间在那里,但我不想浏览几十页并全部更改。

任何想法都非常感谢!谢谢!

0 投票
7 回答
374 浏览

c# - 如何实现每小时运行但也可以从 .aspx 页面触发的作业?

我需要一种经常运行的方法来进行一些数据库处理。但是,我可能需要它可以由站点上的管理员触发。但我不希望此方法同时运行多次,因为这可能会导致它访问数据库的方式出现问题。

例如,我可以...

创建一个在计时器上运行该方法的单例类,并在 global.asax 文件中对其进行实例化。然后,由于它是一个单例,我可以从我的普通 .aspx 页面调用它,并在需要时调用该方法。我可能需要使用 C# 的“锁定”功能来检查该方法是否已经在运行。

我最近听到有人说单身人士是“邪恶的”,但这似乎是完美的契合。你怎么看?提前致谢。

0 投票
4 回答
20512 浏览

asp.net - 为什么网站项目中缺少 global.asax

关于角色的几个问题global.asax

  1. 为什么它不包含在 Visual Studio 的网站项目中?如果没有此文件,是否还有其他方法可以实现相同的功能?

  2. 如果我要创建一个 Web 应用程序项目,据我所知,global.asax会创建一个文件。如果我要删除它,项目会运行吗?

我试图寻找有关global.asax编译的一些解释,但没有找到任何有关此的信息.. 将不胜感激帮助/链接。:)

谢谢!

0 投票
2 回答
7507 浏览

asp.net - Application_Start 在 ASP.NET Web 应用程序中未命中

我正在尝试在 ASP.NET Web 应用程序的 global.asax.cs 文件中调试某些内容,并在 Application_Start() 事件中设置了一个断点,但是当我在 VS2008 中启动 Web 应用程序时,该事件没有被触发。我的目标是 3.5 框架。

什么可以阻止此事件被触发?或者我怎么可能把项目搞砸了,以至于这个事件不再被连接起来?

0 投票
2 回答
44869 浏览

asp.net - 何时在 Global.asax 中使用 Application_Start 与 Init?

我想知道在什么情况下我应该将应用程序初始化代码放在Application_Start()Init()Global.asax文件中?

两者之间的区别对我来说似乎不是很明显,除了Application_start先调用,然后调用Init()

  • 为什么我要使用其中一个?
  • 它真的有区别吗?
  • 两个事件之间的应用程序状态有何变化?

到目前为止,我能找到的唯一真正的指针是IHttpModule只有一个Init()方法,所以如果我正在做的事情可能在某些时候更适合实现,IHttpModule我应该使用 的Init()方法Global.asax,如果没有其他方法来保持一致性。

0 投票
1 回答
220 浏览

error-handling - 使用 Global.aspx 页的错误报告

从收到的错误报告中识别应用程序中的错误时,我总是遇到问题。目前,我构建了一封电子邮件,其中包含有关错误的信息。

  • 用户
  • 网址
  • 错误信息
  • 时间和日期

这是我使用的代码

问题是,在某些情况下,有了这些信息,我无法找出导致错误的原因。

我如何获得有关错误的更多详细信息?例如是什么控制导致它,变量中的数据在系统中传递

此外,除了电子邮件之外,您还使用了哪些收集数据的方法以及它们的成功程度。例如登录数据库,在文本文件中重新编码等。

0 投票
4 回答
25217 浏览

asp.net-mvc - ASP.NET MVC 不调用 global.asax' EndRequest

我试图在每个请求结束时执行一些操作。我更改了创建新项目时生成的 Application_Start() 以进行测试:

不会调用 lambda。任何想法为什么?

编辑:我看到他们在 SharpArch [ http://code.google.com/p/sharp-architecture/]中做类似的事情并且它确实在那里工作......不,我不想使用 HttpModule .

edit2:我发现的唯一解决方法是将 Application_EndRequest 与 global.asax 的私有静态成员结合使用:

wss 必须是私有的,因为看起来 Application_EndRequest 是使用不同的实例对象(this)调用的。这也可能是我的事件(如开头所述)没有被调用的原因。

0 投票
4 回答
6702 浏览

asp.net - 我最早什么时候可以访问 global.asax 中的一些 Session 数据?

我想在我的 global.asax 中检查 Session 是否包含一些键/值数据。我不确定最早可能的时间(和方法名称)是什么时候来检查这个。

谢谢 :)

0 投票
3 回答
2907 浏览

asp.net - 在 Application_Start 期间读取应用程序配置

考虑一个动态调整大型 tiff 文件大小的 Web 应用程序。当用户调用操作时,每个大的 tiff 文件都会被调整为 jpg 缩略图和更大的 jpg。这些转换后的文件的尺寸始终相同。

在昨天的代码审查中,其他一位开发人员问我为什么要在 global.asax 中设置这些维度,如下所示:

,而不仅仅是在实际方法调用期间通过配置文件查找值。如果最终用户在测试应用程序后想要更改尺寸,我将宽度存储在配置文件中,这样我就不必更改内联代码。

我给出的理由是防止每次生成图像时从配置文件中读取,但无法回答在查找应用程序级别变量期间是否存在类似的开销。这种优化可能不会大规模影响性能,但我想知道社区认为更有效的解决方案是什么,即在应用程序启动期间设置它们,或者在方法调用期间动态读取它们。

0 投票
5 回答
7353 浏览

asp.net - Global.asax 没有为发布版本触发

我们的一个应用程序具有一种机制,可以在遇到一定程度的异常时自动向我们的帮助台发送电子邮件。一个特殊的异常 NullReferenceException 引起了一些问题,我相信它是由 IIS 回收和丢失会话引起的。为了证明这一点,我想记录应用程序何时启动/停止/回收,并在 global.asax 文件中添加了一些代码来执行此操作。在调试模式下运行,日志消息被写出,一切看起来都很好。当我切换到发布构建时,问题就出现了,这会触发 Web 部署项目构建到 IIS 中配置的文件夹。

当我导航到应用程序时,未调用 ApplicationStart 方法,因为未创建日志文件并且未更新事件日志。当我重新启动 IIS 时,ApplicationEnd 也会发生同样的情况,即不会创建日志。

为什么它适用于调试版本而不是发布版本?我已经玩了好几个小时了,这让我发疯了。

提前致谢

**[编辑]:我不是 100% 确定发生了什么,但它现在似乎正在工作。我想也许我们用于记录的程序集在 ApplicationStart 执行时可能没有加载,所以我删除了所有代码,只是在方法中创建了一个文本文件。看哪,文件已创建!所以我添加了一个 if(logger != null) 类型检查来尝试输出一些诊断信息,但没有写出任何内容。所以我尝试了 try/catch 并写了一个空白文件“exception.txt”,如果抛出异常但仍然没有创建文件 - 尽管生成了事件日志和预期的日志文件!我很困惑!**