2012-09-22 24 views
1

我剛開始學asp.net MVC3型「ContextModule」我遇到這個問題:分析器錯誤信息:未能加載

error message

我使用Visual Studio 2010,並有在編譯期間沒有錯誤,只有當我嘗試運行應用程序。 我正在Google上尋找答案,但沒有成功。 有誰知道如何解決這個問題?

謝謝!

EDIT-ContextModule代碼:

using System; 
using System.Web; 

namespace testbaza.Models 
{ 
    public class ContextModule : IHttpModule 
    { 

     internal const string CONTEXT_KEY = "datacontext"; 

     public void Dispose() 
     { 

     } 

     public void Init(HttpApplication context) 
     { 
      context.PostRequestHandlerExecute += new EventHandler(context_PostRequestHandlerExecute); 
      context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute); 
     } 

     private void context_PreRequestHandlerExecute(object sender, EventArgs e) 
     { 
      if (HttpContext.Current.Session != null) 
      { 
       HttpContext.Current.Session[CONTEXT_KEY] = new EntitiesModel(); 
      } 
     } 

     private void context_PostRequestHandlerExecute(object sender, EventArgs e) 
     { 
      CommitTransactions(); 

      DisposeContext(); 

      ClearSession(); 

     } 

     private void CommitTransactions() 
     { 
      if (HttpContext.Current.Session == null) 
      { 
       return; 
      } 

      EntitiesModel dbContext = 
       HttpContext.Current.Session[CONTEXT_KEY] as EntitiesModel; 
      if (dbContext != null) 
      { 

       dbContext.SaveChanges(); 
      } 
     } 

     private void DisposeContext() 
     { 
      if (HttpContext.Current.Session == null) 
      { 
       return; 
      } 

      EntitiesModel dbContext = 
       HttpContext.Current.Session[CONTEXT_KEY] as EntitiesModel; 
      if (dbContext != null) 
      { 

       dbContext.Dispose(); 
      } 
     } 

     private void ClearSession() 
     { 

      if (HttpContext.Current.Session == null) 
      { 
       HttpContext.Current.Session.Remove(CONTEXT_KEY); 
      } 
     } 
    } 
} 

回答

2

看起來好像你已經附加了一個無法找到的HTTP模塊。你是如何創建這個項目的? 該模塊可以在web.config中刪除。

編輯
你需要改變:

<httpModules> 
    <add name="ContextModule" type="testbaza.ContextModule, testbaza" /> 
</httpModules> 

<httpModules> 
    <add name="ContextModule" type="testbaza.Models.ContextModule, testbaza" /> 
</httpModules> 

通知更改的命名空間。

+0

我已創建模塊和項目,如本視頻所示http://tv.telerik.com/watch/orm/building-a-mvc-3-application-database-first-with-openaccess-creating-model – user1598696

+1

@ user1598696你能發佈ContextModule的源代碼嗎?只是爲了能夠檢查命名空間等? – Xharze

+0

我已經發布我的代碼在編輯中,感謝您的幫助 – user1598696

2

我相信你應該刪除, testbaza部分從add標籤。

<configuration> 
    <system.web> 
     <httpModules> 
      <add name="MyModule" type="MyModule" /> 
     </httpModules> 
    </system.web> 
</configuration> 
+0

我試過了,它沒有幫助...任何其他想法? – user1598696

相關問題