此处将为大家介绍关于asp.net-mvc-3–WindowsAzureWebMVC应用程序Application_Start在没有活动后重新运行的详细内容,此外,我们还将为您介绍关于Applicat
此处将为大家介绍关于asp.net-mvc-3 – Windows Azure Web MVC应用程序Application_Start在没有活动后重新运行的详细内容,此外,我们还将为您介绍关于Application_Start ASP.NET、Application_Start不被ASP.NET网页应用程序打中、ASP.NET MVC:Application_Start和Url.Action、asp.net – Application_Start和Application_OnStart之间的区别的有用信息。
本文目录一览:- asp.net-mvc-3 – Windows Azure Web MVC应用程序Application_Start在没有活动后重新运行
- Application_Start ASP.NET
- Application_Start不被ASP.NET网页应用程序打中
- ASP.NET MVC:Application_Start和Url.Action
- asp.net – Application_Start和Application_OnStart之间的区别
asp.net-mvc-3 – Windows Azure Web MVC应用程序Application_Start在没有活动后重新运行
该网站尚未推出,我发现,一旦我部署并点击一下,一切都很好,非常快,那么如果我单独离开网站45分钟左右再回到它,有一个加载页面时长时间延迟.通过日志记录,我发现Application_Start正在被解雇,我不得不等待站点重新启动并运行我的所有bootstrappers.
我的问题是,如果不活动,Azure Webrole“进入睡眠状态”是否正常?如果是这样,我怎么能阻止这种情况发生,以便我的幸运用户访问该网站的那段时间没有太长的等待时间和糟糕的经历.
解决方法
Application_Start ASP.NET
The Application_Start and Application_End methods are special methods that do not represent HttpApplication events. ASP.NET calls them once for the lifetime of the application domain,not for each HttpApplication instance.
我确信Application_Start与HttpApplication有关,这里this guy explains为什么我错了.
哪个对象/实体与Application_Start事件有关?
解决方法
Application_Start不被ASP.NET网页应用程序打中
什么可以防止这个事件被解雇?或者我怎么搞砸了这个项目,这样的事件就不再有线了?
解决方法
尝试做其他事情来检查Application_Start方法是否运行,就像设置应用程序变量一样:
Application("app") = "started"
然后在页面中显示应用程序变量,看看它是否被设置.
ASP.NET MVC:Application_Start和Url.Action
我正在尝试在Application_Start事件中加载菜单.
我想用正确的URL(controllerName / actionName)加载一些链接,但我不能使用Url.Action或其他方法来构建路径.
有谁能够帮我?
解决方法
RegisterRoutes(RouteTable.Routes); var httpContext = new HttpContextwrapper(HttpContext.Current); UrlHelper urlHelper = new UrlHelper( new RequestContext(httpContext,new RouteData())); var urlToHome = urlHelper.RouteUrl("Home");
我宁愿建议在你的母版页上做一个RenderAction,指向一个缓存的动作,或类似的东西.
asp.net – Application_Start和Application_OnStart之间的区别
如果我尝试同时拥有Start和OnStart,OnStart不会被调用(并且安装失败,导致错误)。它看起来像我必须选择一个或另一个。
我的问题是:我应该使用哪一个?它们之间有什么区别?他们在不同的时间被叫?
(注意:在写这篇文章的时候,top three Google的命中是无用的和/或误导性的。我希望Stack Overflow可以解决这个问题。)
解决方法
> Application_OnStart – 运行一次,当您的应用程序接收第一个HTTP请求并且在处理任何.ASP文件之前。
> Application_OnEnd – 在应用程序关闭期间,在处理所有请求后运行一次。
> Session_OnStart – 在每个唯一用户会话的开始运行。如果用户/客户端禁用Cookie,则会针对每个请求运行Cookie,因为ASP从未检测到标识现有会话的会话Cookie。
> Session_OnEnd – (理论上!)每次用户会话到期时运行。祝你好运。
这些基本上是硬连接到经典的ASP运行时 – 你不能改变它们,你不能附加任何其他方法到这些事件。
在ASP.NET中,有一个名为AutoEventWireup的东西,它使用反射来查找符合特定命名约定的方法,并运行这些方法来响应ASP.NET运行时引发的匹配事件。最常见的例子是Page_Load方法,它会在页面生命周期内触发Load事件时自动调用。
相同的技术用于将处理程序附加到应用程序级生命周期事件。它将查找名为ModuleName_EventName或ModuleName_OnEventName的方法,不带参数()或(object sender,EventArgs e)
这里是有趣的部分 – 如果您定义多个匹配方法,只有文件中最新出现的一个将执行。 (最后的方法赢了,基本上)
所以如果你的global.asax.cs看起来像这样:
public class Global : System.Web.HttpApplication { protected void Application_Start() { Debug.WriteLine("A: Application_Start()"); } protected void Application_Start(object sender,EventArgs e) { Debug.WriteLine("B: Application_Start(object sender,EventArgs e)"); } protected void Application_OnStart() { Debug.WriteLine("C: Application_OnStart()"); } protected void Application_OnStart(object sender,EventArgs e) { Debug.WriteLine("D: Application_OnStart(object sender,EventArgs e)"); } }
您将在调试输出中看到消息D;如果您注释掉该块中的最后一个方法,您将看到消息C。
所以 – 使用任何你喜欢的命名约定,但如果你定义多个,只有在你的源文件中最后出现的那个将被执行。我个人坚持Application_Start(对象发送者,EventArgs e),因为这是Visual Studio项目模板和大多数.NET设计/编码工具生成的签名。
我们今天的关于asp.net-mvc-3 – Windows Azure Web MVC应用程序Application_Start在没有活动后重新运行的分享就到这里,谢谢您的阅读,如果想了解更多关于Application_Start ASP.NET、Application_Start不被ASP.NET网页应用程序打中、ASP.NET MVC:Application_Start和Url.Action、asp.net – Application_Start和Application_OnStart之间的区别的相关信息,可以在本站进行搜索。
本文标签: