在汇编中嵌入Global.asax
答
我不确定。您是否尝试将生成操作设置为嵌入式资源?你可以通过选择global.asax文件来做到这一点,然后该选项应该出现在你的属性窗口中。
答
当然可以。据我所知,你有三个选项:
- 使用HttpModule,但请注意,它有一些棘手的部分。例如,HTTP模块初始化方法可能会被多次触发(这是基于应用程序池的应用程序实例的数量)
- 使用OWIN
- 交替的HttpApplication类型 - 这一个最适合我,但我没有在太多的不同情况和框架版本中测试它。您需要在组装中做的唯一一件事就是粘贴以下内容:
。
using System.Web;
using System.Web.UI;
[assembly: PreApplicationStartMethod(typeof(MyAssembly.MyHttpApplication), nameof(MyAssembly.MyHttpApplication.Application_Register)]
namespace MyAssembly
{
public class MyHttpApplication : HttpApplication
{
public static void Application_Register()
{
PageParser.DefaultApplicationBaseType = typeof(MyHttpApplication);
}
protected void Application_Start()
{
// TODO: Your application startup magic :)
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
// TODO:
}
}
}
跟踪(或类似的东西):
- System.Web.UI.PageParser.DefaultApplicationBaseType
- System.Web.Compilation.BuildManager.GetGlobalAsaxType()
- 的System.Web .HttpApplicationFactory.CompileApplication()
希望帮助:)
只是出于好奇,为什么这需要?后面的代码会自动包含在Web App组件中。谢谢。 – Alexei
目前正致力于将Ironpython和asp.net mvc结合在一起。事情进展得很顺利,但我只想分发一个dll,并且没有'global.asax'。 – BendEg