我有几个使用WebActivator包的web应用程序。在我使用IIS7.5Express的本地计算机上,无论我是在Release还是Debug配置中进行测试,一切都工作得很好。但是,在我使用IIS7.5的生产机器上,WebActivator实际上并没有运行,因此所有模块都无法加载,我必须将代码重新添加到Global.asax.cs文件中。
我甚至不知道从哪里开始寻找-谷歌和搜索StackOverflow,但没有遇到任何人有类似的问题。是否有任何显式配置需要配置以允许其运行?
编辑-添加了记录到Windows的激活器的快速示例。将函数内容添加到Global.asax.cs文件后,可以在生产服务器上正常运行,但从不从激活器中记录日志。
using System.Web.Mvc;
using System;
[assembly: WebActivator.PreApplicationStartMethod(typeof(Admin.App_Start.WebActivatorTestStart), "Start")]
namespace Admin.App_Start
{
public static class WebActivatorTestStart {
public static void Start() {
System.Diagnostics.EventLog log = new System.Diagnostics.EventLog();
log.Source = ".NET Runtime";
log.WriteEntry("WebActivator Start", System.Diagnostics.EventLogEntryType.Information);
}
}
}发布于 2012-04-05 02:43:12
嗯,我不能确定我做了什么来解决问题,但它现在起作用了。
简单回顾一下历史--我管理着许多不同的大型应用程序,它们都使用一些公共的库。我有我的公共web库,那是我用Ninject和WebActivator设置IOC的地方。这个基库中有App_Start文件夹。也许这就是原因?不知道。我从来没有让WebActivator使用过这个设置,所以我只是使用NinjectHttpApplication来处理注册和启动的事情。然而,基库仍然依赖于WebActivator (只是没有App_Start文件夹)。
因此,现在我正致力于重构一些应用程序和基础库--清理过去几个月的一堆代码。其中一个步骤是将所有的IoC移到实际的web应用程序中--使基础库不那么单一化。基库不再依赖于WebActivator。
现在它起作用了。我还对基库做了半个其他的小改动,所以我向其他人道歉,因为我没有对它进行更系统的修改。
https://stackoverflow.com/questions/7716880
复制相似问题