我不完全确定最佳实践是什么,但我想到了一个想法。
一个主要的限制是能够为这些用户共享应用程序池和会话。
一种方法(同样,我不确定最佳实践是什么)是从一个地方设置所有这些应用程序。如果你愿意的话,一个入门级。这将只有一个用于启动应用程序的 global.asax 定义。每个应用程序将从一个地方开始,允许它们共享相同的范围。这可以通过 global.asax 文件中的几个步骤来完成。
右键单击 global.asax 并单击显示标记
<%@ Application Codebehind="Global.asax.cs" Inherits="appNamespace.ApplicationModerator" Language="C#" %>
global.asax.cs 内部
public class ApplicationModerator : System.Web.HttpApplication
{
protected void Application_Start()
{
new namespace1.TierApplication1();
new namespace2.TierApplication2();
new namespace3.TierApplication3();
}
}
TierApplication1(它们都将不同,但具有相似的功能)
public class TierApplication1
{
public TierApplication1 ()
{
AreaRegistration.RegisterAllAreas();
Database.SetInitializer<DbContext>(null);
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("favicon.ico");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Account", action = "LogOn", id = UrlParameter.Optional }, // Parameter defaults
);
}
}