6

我有几个使用 WebActivator 的包的 Web 应用程序。在装有 IIS 7.5 Express 的本地计算机上,无论我在发布配置还是调试配置中进行测试,一切都运行良好。但是,在我使用 IIS 7.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);

        }
    }
}
4

1 回答 1

0

好吧,我不能确定我做了什么来解决问题,但它现在正在工作。

一点历史 - 我使用一些通用库管理许多不同的大型应用程序。我有我的公共网络库,这就是我曾经使用 Ninject 和 WebActivator 设置 IOC 的地方。这个基础库中有 App_Start 文件夹。也许这就是原因?不知道。从来没有让 WebActivator 使用这个设置,所以我只是使用 NinjectHttpApplication 来处理注册和启动的东西。但是,基础库仍然依赖于 WebActivator(只是没有 App_Start 文件夹)。

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

现在它可以工作了。我还对基础库做了半百个小改动,所以我向其他人道歉,因为没有更系统化。

于 2012-04-04T18:43:12.010 回答