4

私はウェブサイト用のアプリケーションのようなプラグインを開発しています。要件により、ソースコードがないメインのWebサイトと同じ物理パスと同じアプリケーションプールに存在します。したがって、これらは両方とも同じWeb.configと他のいくつかの依存関係を共有します。

アプリケーションの開始時にサードパーティの依存関係のライセンスを設定する必要がありますが、Global.asaxのコードが別の会社によって所有されているため、そのコードビハインドにアクセスする方法がありません。

それで、Global.asaxを使用せずにApplication Startにイベントを追加する別の方法はありますか、それとも現在のGlobal.asaxを継承/拡張する唯一の解決策ですか?

4

2 に答える 2

9

HTTPModuleを使用できます。

public class MyModule : IHttpModule
{
    #region IHttpModule Members

    public void Dispose()
    {
    }

    public void Init(HttpApplication context)
    {
        ...
    }

    #endregion
}

web.config

<httpModules>
  <add name="MyModule" type="MyNamespace.MyModule, MyAssembly" />
</httpModules>
于 2009-10-07T08:31:32.297 に答える
2

ターゲットプロジェクトがすべて.NET4.0以降になることがわかっている場合は、WebActivatorを使用できます。

https://github.com/davidebbo/WebActivator

[assembly: WebActivatorEx.PostApplicationStartMethod(typeof(Bootstrapper), "Start")]

public class Bootstrapper
{
    public static void Start()
    {
        // Put everything in motion here
    }
}

Global.asax Application_Start()関数の前または後に実行するオプションもあることに注意してください。この例は後で実行されます。

于 2013-06-14T11:46:09.953 に答える