我需要用来Server.MapPath()组合我存储在的一些文件路径web.config.
但是,由于Server.MapPath()依赖于当前的HttpContext(我认为),我无法做到这一点.在尝试使用该方法时,即使它"可用",我也会遇到以下异常:
在此上下文中无法使用服务器操作.
是否有另一种方法可以将Web根目录相对目录映射~/App_Data/到完整的物理路径,例如C:\inetpub\wwwroot\project\App_data\?
...是否会再次运行Application_Start方法以用于下一个请求?
它是否依赖于ASP.NET版本,托管服务器版本和/或其他上下文?
我试图确定在那里加载关键组件是否是一件好事.例如,数据访问程序集对整个应用程序的运行至关重要.未能加载此类程序集将使后续请求无效.
我正在调试一个ASP.NET 2.0应用程序,该应用程序正在缓慢加载初始页面.
通过添加日志记录,我发现Application_Start事件在启动时会触发两次,两个事件之间会有短暂的延迟.该Session_Start事件还会触发两次,具有相同的会话ID值.
例如
[Header] 2010-09-10 14:52:36.331 INFO Web.Global.Application_Start START 2010-09-10 14:52:37.409 INFO Web.Global.Session_Start Session.SessionID=xxqjvun2ce2yqsumq1hfoj45 [Header] 2010-09-10 14:53:10.028 INFO Web.Global.Application_Start START 2010-09-10 14:53:10.325 INFO Web.Global.Session_Start Session.SessionID=xxqjvun2ce2yqsumq1hfoj45
我在IIS 5.1下的本地计算机上运行它.该项目还使用ASP.NET MVC,使用路由更改使用的aspx页面URL,使用Phil Haack网站上显示的技术.
有什么可能导致这个的任何建议?
任何人都可以建议如何为控制台应用程序配置log4net?
或者至少如何/在哪里捕捉Application_Start事件?(此时此刻需要一些电话)
提前致谢!
我刚开始学习Azure的技术细节,所以如果这是一个愚蠢的问题,请道歉.
如果我在visual studio中创建一个云服务项目并为mvc应用程序添加webrole,在mvc应用程序中我可以看到"WebRole.cs"文件.但是,当我以MVC应用程序作为起点,然后想要为Azure启用它时,通过右键单击项目并选择"添加Windows Azure云服务项目",不会创建WebRole.cs.
那么我将在WebRole的开始事件中将事情发生在哪里?Global.asax文件的Application_Start()事件?
如果是这样,Global.asax中的Application_Start()和webrole的onStart()方法之间有什么区别?
我发现了以下帖子,其中提供了部分解释: 什么首先启动Application_Start或WebRole的OnStart?
因此,如果WebRole的onStart事件发生在Global.asax中的Application_Start()之前,如果我想在项目中的onStart()事件上运行一些代码,我之后启用了应用程序Azure的?
我有一些初始化静态单例类的代码,这是所有请求都需要的.因此我想我可以将它添加到global.asax Application_Start.我可以100%确定在加载Application_Start时所有请求都会阻止,以保证所有请求都可以访问它吗?
非常感谢Jeeji
我想知道是否有办法在网站的应用程序池被回收时自动为网站/应用程序启动应用程序启动?
这个问题有罐装解决方案吗?
我真的想避免让我的一个最终用户必须通过网站的应用程序启动,如果他们可以避免它.
Application_Start和Application_End方法是不代表HttpApplication事件的特殊方法.ASP.NET在应用程序域的生命周期内调用它们一次,而不是为每个HttpApplication实例调用它们.
我确信Application_Start与HttpApplication有关,在这里这个人解释了为什么我错了.哪个对象/实体与Application_Start事件有关?
asp.net application-start httpapplication application-lifecycle
我有一个ASP.NET应用程序,我在Application_OnStart事件中编写此代码:
public virtual void OnStart(HttpApplication httpApplication)
{
MyClass.PopulateIndices();
}
Run Code Online (Sandbox Code Playgroud)
现在,我知道App_Onstart只触发一次,所以我的问题是:我是否需要在此代码中添加线程安全性,例如:
lock(some object)
{
MyClass.PopulateIndices();
}
Run Code Online (Sandbox Code Playgroud)
这lock()真的需要吗?多个线程可以OnStart同时触发App 吗?
我想知道在开发功能时是否有一种很好的方法可以挂钩到SharePoint 2007网站的Application_Start?我知道我可以直接编辑站点根目录中的Global.asax文件,但有没有办法实现这一点,以便它与该功能一起部署?
谢谢!