Webactivator无法在IIS 7上运行

Len*_*ncy 6 asp.net asp.net-mvc webactivator

我有几个Web应用程序使用WebActivator来使用包.在我使用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);

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Len*_*ncy 0

好吧,我不能肯定地说我做了什么来解决问题,但它现在正在发挥作用。

一些历史 - 我管理许多不同的大型应用程序,所有这些应用程序都使用一些通用库。我有一个通用的 Web 库,我曾经在其中使用 Ninject 和 WebActivator 进行 IOC 设置。该基础库中有 App_Start 文件夹。也许这就是原因?不知道。WebActivator 从未使用过此设置,因此我只是使用 NinjectHttpApplication 来处理注册和启动内容。但是,基础库仍然依赖于 WebActivator(只是没有 App_Start 文件夹)。

所以现在我正在努力重构一些应用程序和基础库 - 清理过去几个月的一堆代码气味。第一步是将所有 IoC 移至实际的 Web 应用程序 - 使基础库不那么单一。基础库不再对 WebActivator 有任何依赖。

现在它起作用了。我还对基础库进行了 50 个其他的小更改,因此我向其他人道歉,因为我没有对此进行更系统化。