2011-10-10 58 views
6

我有几个使用WebActivator使用软件包的Web应用程序。在使用IIS 7.5 Express的本地机器上,无论我在Release还是Debug配置中进行测试,一切正常。但是,在使用IIS 7.5的生产机器上,WebActivator实际上并未运行,所以所有模块都无法加载,我必须将代码添加回Global.asax.cs文件。Webactivator不能在IIS 7上运行

我很难从哪里开始寻找 - 谷歌搜索和搜索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

您的生产机器上是否安装了ASP.NET 4? – counsellorben

+0

是的,在开发和生产框之间的所有东西的相同版本,除了IIS 7.5/IIS Express 7.5。应用程序池被设置为.Net 4,集成管道。 – Leniency

+0

你确定它是WebActivator不运行吗?也许这是你在做什么来加载失败的模块?你能否试着将WebActivator写入日志,以便确认它是WebActivator失败的? –

回答

0

那么,我不能肯定地说我做了什么来解决问题,但它现在正在工作。

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

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

现在它的工作。我对基础库也做了另外半个小的改动,所以我向其他人表示歉意,因为没有对它做更系统的描述。