2011-10-10 56 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。

現在它的工作。我對基礎庫也做了另外半個小的改動,所以我向其他人表示歉意,因爲沒有對它做更系統的描述。