我有几个使用WebActivator的Web应用程序。在我使用IIS 7.5 Express的本地计算机上,无论我在发布版本还是调试配置中进行测试,一切正常。但是,在我的IIS 7.5生产机器上,WebActivator实际上并没有运行,所以所有模块都无法加载,我必须将代码添加回Global.asax.cs文件。
我很困惑甚至在哪里开始寻找 - 用Google搜索并搜索了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);
}
}
}
答案 0 :(得分:0)
好吧,我不能肯定地说我做了什么来解决问题,但它现在正在发挥作用。
一点历史 - 我使用一些公共库管理许多不同的大型应用程序。我有我的常用Web库,这就是我曾经使用Ninject和WebActivator进行IOC设置的地方。该基础库中包含App_Start文件夹。也许这就是原因?不知道。从未让WebActivator使用此设置,因此我只使用NinjectHttpApplication来处理注册和启动内容。但是,基本库仍然依赖于WebActivator(只是没有App_Start文件夹)。
所以现在我正在努力重构一些应用程序和基础库 - 清理过去几个月的一堆代码味道。一步是将所有IoC移动到实际的Web应用程序 - 使基本库不那么单一。基础库不再依赖WebActivator。
现在它有效。我对基础库也做了其他一半的小改动,所以我向其他人道歉,因为它没有更系统化。