有没有办法将global.asax文件编译或预编译到dll并在bin文件夹中使用它?
我在此文件中有许可证逻辑,我不会编译其他文件。
我还可以检查dll本身是否存在于bin文件夹中。
void Application_BeginRequest(object sender, EventArgs e)
{
//Application is allowed to run only on specific domains
string[] safeDomains = new string[] { "localhost" };
if(!((IList)safeDomains).Contains(Request.ServerVariables["SERVER_NAME"]))
{
Response.Write("Thisweb application is licensed to run only on: "
+ String.Join(", ", safeDomains));
Response.End();
}
}
答案 0 :(得分:3)
您可以通过在Application指令中指定Inherits属性来将代码与global.asax文件分开。现在您不必在Global.asax文件中编写代码。
<%@ Application Inherits="Company.LicensedApplication" %>
实际上,这是Global.asax中唯一需要的代码行。相反,您需要一个单独的C#文件来编写应用程序类的代码:
namespace Company
{
public class LicensedApplication : System.Web.HttpApplication
{
void Application_BeginRequest(object sender, EventArgs e)
{
// Check license here
}
}
}
现在,您可以使用已编译的应用程序类在bin文件夹中安装Web应用程序。