Webactivator 在 IIS 7 上无法运行。

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);

        }
    }
}

是的,在开发和生产环境中,所有东西的版本都相同,除了IIS 7.5 / IIS Express 7.5。应用程序池设置为.Net 4,集成管道模式。 - Leniency
你确定是WebActivator没有运行吗?也许是你加载模块的方法出了问题?你可以尝试对WebActivator进行仪器化操作,将日志写入文件,以便确认是否是WebActivator出了问题。 - Jakub Konecki
刚刚做了一些快速代码,添加到启动器类中,以写入Windows日志。在我的开发机上,日志条目显示出来了,但在生产环境中没有任何显示。为了参考,我上面包含了测试启动器的代码。 - Leniency
我知道这只是一次猜测,但你能否检查WebActivator dll是否已部署到生产服务器并加载到工作进程中? - Jakub Konecki
哈哈,是啊。只是一直没有时间——在完成上一个项目之前就有更多的项目了。希望很快我能抽出一个下午来深入研究它。 - Leniency
显示剩余3条评论
1个回答

0

嗯,我不能确定我做了什么来修复问题,但现在它可以工作了。

一些历史 - 我管理着许多不同的大型应用程序,它们都使用一些共同的库。我有我的通用Web库,那里是我以前使用Ninject和WebActivator设置IOC的地方。这个基础库有一个App_Start文件夹。也许这就是原因?我不知道。从来没有让WebActivator与这个设置一起工作,所以我只是使用NinjectHttpApplication来处理注册和启动的东西。然而,基础库仍然依赖于WebActivator(只是没有App_Start文件夹)。

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

现在它可以工作了。我对基础库进行了其他五十个小更改,所以我向其他人道歉,因为我没有更系统地处理它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接