Fixed help files.
This commit is contained in:
commit
b8f912cc79
1543 changed files with 395123 additions and 0 deletions
106
WebApplication/Global.asax.cs
Normal file
106
WebApplication/Global.asax.cs
Normal file
|
@ -0,0 +1,106 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.SessionState;
|
||||
using System.Text;
|
||||
|
||||
namespace ScrewTurn.Wiki {
|
||||
|
||||
public class Global : System.Web.HttpApplication {
|
||||
|
||||
protected void Application_Start(object sender, EventArgs e) {
|
||||
// Nothing to do (see Application_BeginRequest).
|
||||
}
|
||||
|
||||
protected void Session_Start(object sender, EventArgs e) {
|
||||
// Increment # of online users and setup a new breadcrumbs manager
|
||||
// TODO: avoid to increment # of online users when session is not InProc
|
||||
ScrewTurn.Wiki.Cache.OnlineUsers++;
|
||||
}
|
||||
|
||||
protected void Application_BeginRequest(object sender, EventArgs e) {
|
||||
if(Application["StartupOK"] == null) {
|
||||
Application.Lock();
|
||||
if(Application["StartupOK"] == null) {
|
||||
// Setup Resource Exchanger
|
||||
ScrewTurn.Wiki.Exchanger.ResourceExchanger = new ScrewTurn.Wiki.ResourceExchanger();
|
||||
ScrewTurn.Wiki.StartupTools.Startup();
|
||||
|
||||
// All is OK, proceed with normal startup operations
|
||||
Application["StartupOK"] = "OK";
|
||||
}
|
||||
Application.UnLock();
|
||||
}
|
||||
|
||||
ScrewTurn.Wiki.UrlTools.RouteCurrentRequest();
|
||||
}
|
||||
|
||||
protected void Application_AcquireRequestState(object sender, EventArgs e) {
|
||||
if(HttpContext.Current.Session != null) {
|
||||
// This should be performed on EndRequest, but Session is not available there
|
||||
SessionCache.ClearData(HttpContext.Current.Session.SessionID);
|
||||
|
||||
// Try to automatically login the user through the cookie
|
||||
ScrewTurn.Wiki.LoginTools.TryAutoLogin();
|
||||
}
|
||||
}
|
||||
|
||||
protected void Application_AuthenticateRequest(object sender, EventArgs e) {
|
||||
// Nothing to do
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logs an error.
|
||||
/// </summary>
|
||||
/// <param name="ex">The error.</param>
|
||||
private void LogError(Exception ex) {
|
||||
//if(ex.InnerException != null) ex = ex.InnerException;
|
||||
try {
|
||||
ScrewTurn.Wiki.Log.LogEntry(HttpContext.Current.Request.Url.ToString() + "\n" +
|
||||
ex.Source + " thrown " + ex.GetType().FullName + "\n" + ex.Message + "\n" + ex.StackTrace,
|
||||
ScrewTurn.Wiki.PluginFramework.EntryType.Error, ScrewTurn.Wiki.Log.SystemUsername);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
protected void Application_Error(object sender, EventArgs e) {
|
||||
// Retrieve last error and log it, redirecting to Error.aspx (avoiding infinite loops)
|
||||
|
||||
Exception ex = Server.GetLastError();
|
||||
|
||||
HttpException httpEx = ex as HttpException;
|
||||
if(httpEx != null) {
|
||||
// Try to redirect an inexistent .aspx page to a probably existing .ashx page
|
||||
if(httpEx.GetHttpCode() == 404) {
|
||||
string page = System.IO.Path.GetFileNameWithoutExtension(Request.PhysicalPath);
|
||||
ScrewTurn.Wiki.UrlTools.Redirect(page + ScrewTurn.Wiki.Settings.PageExtension);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
LogError(ex);
|
||||
string url = "";
|
||||
try {
|
||||
url = HttpContext.Current.Request.Url.ToString();
|
||||
}
|
||||
catch { }
|
||||
EmailTools.NotifyError(ex, url);
|
||||
Session["LastError"] = Server.GetLastError();
|
||||
if(!Request.PhysicalPath.ToLowerInvariant().Contains("error.aspx")) ScrewTurn.Wiki.UrlTools.Redirect("Error.aspx");
|
||||
}
|
||||
|
||||
protected void Session_End(object sender, EventArgs e) {
|
||||
// Decrement # of online users (only works when session is InProc)
|
||||
ScrewTurn.Wiki.Cache.OnlineUsers--;
|
||||
}
|
||||
|
||||
protected void Application_End(object sender, EventArgs e) {
|
||||
// Try to cleanly shutdown the application and providers
|
||||
ScrewTurn.Wiki.StartupTools.Shutdown();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue