Компилировать / предварительно компилировать только global.asax - PullRequest
1 голос
/ 17 октября 2011

Есть ли способ скомпилировать или предварительно скомпилировать только файл 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();
       }
    }

1 Ответ

3 голосов
/ 09 декабря 2011

Вы можете отделить код от файла global.asax, указав атрибут Inherits в директиве Application.Теперь вам не нужно писать код в файле 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.

...