1

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();
       }
    }
4

1 に答える 1

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
        }
    }
}

これで、コンパイルされたアプリケーションクラスを含むWebアプリケーションをbinフォルダーにインストールできます。

于 2011-12-09T00:18:28.937 に答える