WebApiConfig在当前上下文中不存在

时间:2015-03-24 09:30:05

标签: c# asp.net asp.net-mvc

我正在使用asp.net mvc 5.我正在做以下教程, http://venkatbaggu.com/signalr-database-update-notifications-asp-net-mvc-usiing-sql-dependency/

但是在Global.sax文件中它表示" WebApiConfig在当前上下文中不存在"。为什么会这样?

这里有一些代码

protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        GlobalConfiguration.Configure(WebApiConfig.Register); //this is where error shows
        //Start SqlDependency with application initialization
        SqlDependency.Start(connString);
    }

3 个答案:

答案 0 :(得分:13)

您的App_Start文件夹中是否有WebApiConfig.cs文件? 如果你看一下教程在github中引用的源代码,那么WebApiConfig文件如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;

namespace SignalRDbUpdates
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}

查看github存储库上的App_Start文件夹: https://github.com/venkatbaggu/signalrdatabasenotifications/tree/master/SignalRDbUpdates/App_Start

答案 1 :(得分:0)

在编译时或调试时出现此错误时,目前尚不清楚?

如果在编译期间发生,则检查WebApiConfig.cs文件是否存在。

如果在调试时发生这种情况,那么您需要检查是否对此文件进行了一些更改,因为默认实现应该没有问题。

问题可能出在下一行?

SqlDependency.Start(connString);

检查连接字符串是否正确。

修改 我尝试下载并运行该项目,首先我收到了这个错误:

  

由于以下原因,进入中断模式失败:源文件   ' E:\ BlogDemos \ SignalRDbUpdates \ SignalRDbUpdates \的Global.asax.cs'不   不属于正在调试的项目

这很奇怪,因为我没有" E"开车。但在将Managaed Pipilene Mode更改为Classic并返回Integrated(默认值)并构建项目后,它开始正常运行。

答案 2 :(得分:0)

对我来说,我移动了代码文件夹,出于某种原因

WebApiConfig.cs
AuthConfig.cs
Filter.cs
BundleConfig.cs

已被排除在项目之外,将其重新包括在内并再次发挥作用。 由于文件夹没有扩展,我从未意识到他们被排除在外。