问题标签 [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.
asp.net - ASP.Net 页面的全局时序
我刚刚继承了一个我需要维护的由其他人编写的网站(ASP.Net 2.0)。
该代码并不可怕,但它有许多使网站运行缓慢的东西。
我有一个想法来监控这个,我想看看更有经验的开发人员是怎么想的。
我现在的目标是找出页面加载时间过长,将注意力集中在这些地方。
我正在考虑在 Global.asax 中挂钩 PreRequestHandlerExecute 和 PostRequestHandlerExecute 事件,并在“Pre”中创建一个 StopWatch,将其附加到 HttpContext.Items,并在“Post”中读取它,如果请求超过,比如说, 100ms,它会向我报告让我知道。
一些“伪代码”将是:
您如何看待这种方法?
这样做合理吗?
它会让我的网站爬行吗?
有一个更好的方法吗?
一些想法:
- 抓住 DateTime.Now.Ticks 并存储它可能会更好,这可能会比 StopWatch 更轻
- 我知道让所有页面都继承自我自己的页面会更好,并且时间在那里,但我不想浏览几十页并全部更改。
任何想法都非常感谢!谢谢!
c# - 如何实现每小时运行但也可以从 .aspx 页面触发的作业?
我需要一种经常运行的方法来进行一些数据库处理。但是,我可能需要它可以由站点上的管理员触发。但我不希望此方法同时运行多次,因为这可能会导致它访问数据库的方式出现问题。
例如,我可以...
创建一个在计时器上运行该方法的单例类,并在 global.asax 文件中对其进行实例化。然后,由于它是一个单例,我可以从我的普通 .aspx 页面调用它,并在需要时调用该方法。我可能需要使用 C# 的“锁定”功能来检查该方法是否已经在运行。
我最近听到有人说单身人士是“邪恶的”,但这似乎是完美的契合。你怎么看?提前致谢。
asp.net - 为什么网站项目中缺少 global.asax
关于角色的几个问题global.asax
:
为什么它不包含在 Visual Studio 的网站项目中?如果没有此文件,是否还有其他方法可以实现相同的功能?
如果我要创建一个 Web 应用程序项目,据我所知,
global.asax
会创建一个文件。如果我要删除它,项目会运行吗?
我试图寻找有关global.asax
编译的一些解释,但没有找到任何有关此的信息.. 将不胜感激帮助/链接。:)
谢谢!
asp.net - Application_Start 在 ASP.NET Web 应用程序中未命中
我正在尝试在 ASP.NET Web 应用程序的 global.asax.cs 文件中调试某些内容,并在 Application_Start() 事件中设置了一个断点,但是当我在 VS2008 中启动 Web 应用程序时,该事件没有被触发。我的目标是 3.5 框架。
什么可以阻止此事件被触发?或者我怎么可能把项目搞砸了,以至于这个事件不再被连接起来?
asp.net - 何时在 Global.asax 中使用 Application_Start 与 Init?
我想知道在什么情况下我应该将应用程序初始化代码放在Application_Start()
我Init()
的Global.asax
文件中?
两者之间的区别对我来说似乎不是很明显,除了Application_start
先调用,然后调用Init()
。
- 为什么我要使用其中一个?
- 它真的有区别吗?
- 两个事件之间的应用程序状态有何变化?
到目前为止,我能找到的唯一真正的指针是IHttpModule
只有一个Init()
方法,所以如果我正在做的事情可能在某些时候更适合实现,IHttpModule
我应该使用 的Init()
方法Global.asax
,如果没有其他方法来保持一致性。
error-handling - 使用 Global.aspx 页的错误报告
从收到的错误报告中识别应用程序中的错误时,我总是遇到问题。目前,我构建了一封电子邮件,其中包含有关错误的信息。
- 用户
- 网址
- 错误信息
- 时间和日期
这是我使用的代码
问题是,在某些情况下,有了这些信息,我无法找出导致错误的原因。
我如何获得有关错误的更多详细信息?例如是什么控制导致它,变量中的数据在系统中传递
此外,除了电子邮件之外,您还使用了哪些收集数据的方法以及它们的成功程度。例如登录数据库,在文本文件中重新编码等。
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)调用的。这也可能是我的事件(如开头所述)没有被调用的原因。
asp.net - 我最早什么时候可以访问 global.asax 中的一些 Session 数据?
我想在我的 global.asax 中检查 Session 是否包含一些键/值数据。我不确定最早可能的时间(和方法名称)是什么时候来检查这个。
谢谢 :)
asp.net - 在 Application_Start 期间读取应用程序配置
考虑一个动态调整大型 tiff 文件大小的 Web 应用程序。当用户调用操作时,每个大的 tiff 文件都会被调整为 jpg 缩略图和更大的 jpg。这些转换后的文件的尺寸始终相同。
在昨天的代码审查中,其他一位开发人员问我为什么要在 global.asax 中设置这些维度,如下所示:
,而不仅仅是在实际方法调用期间通过配置文件查找值。如果最终用户在测试应用程序后想要更改尺寸,我将宽度存储在配置文件中,这样我就不必更改内联代码。
我给出的理由是防止每次生成图像时从配置文件中读取,但无法回答在查找应用程序级别变量期间是否存在类似的开销。这种优化可能不会大规模影响性能,但我想知道社区认为更有效的解决方案是什么,即在应用程序启动期间设置它们,或者在方法调用期间动态读取它们。
asp.net - Global.asax 没有为发布版本触发
我们的一个应用程序具有一种机制,可以在遇到一定程度的异常时自动向我们的帮助台发送电子邮件。一个特殊的异常 NullReferenceException 引起了一些问题,我相信它是由 IIS 回收和丢失会话引起的。为了证明这一点,我想记录应用程序何时启动/停止/回收,并在 global.asax 文件中添加了一些代码来执行此操作。在调试模式下运行,日志消息被写出,一切看起来都很好。当我切换到发布构建时,问题就出现了,这会触发 Web 部署项目构建到 IIS 中配置的文件夹。
当我导航到应用程序时,未调用 ApplicationStart 方法,因为未创建日志文件并且未更新事件日志。当我重新启动 IIS 时,ApplicationEnd 也会发生同样的情况,即不会创建日志。
为什么它适用于调试版本而不是发布版本?我已经玩了好几个小时了,这让我发疯了。
提前致谢
**[编辑]:我不是 100% 确定发生了什么,但它现在似乎正在工作。我想也许我们用于记录的程序集在 ApplicationStart 执行时可能没有加载,所以我删除了所有代码,只是在方法中创建了一个文本文件。看哪,文件已创建!所以我添加了一个 if(logger != null) 类型检查来尝试输出一些诊断信息,但没有写出任何内容。所以我尝试了 try/catch 并写了一个空白文件“exception.txt”,如果抛出异常但仍然没有创建文件 - 尽管生成了事件日志和预期的日志文件!我很困惑!**