分析器错误消息:无法加载类型“ContextModule”

时间:2012-09-22 22:22:38

标签: asp.net asp.net-mvc asp.net-mvc-3 razor

我刚刚开始学习asp.net MVC3,我遇到了这个问题:

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 个答案:

答案 0 :(得分:2)

我相信您应该从, testbaza代码中移除add部分。

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

答案 1 :(得分:2)

好像你已经附加了一个无法找到的HTTP模块。你是如何创建这个项目的? 可以在web.config中删除该模块。

修改
你需要改变:

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

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

注意更改的命名空间。