调用Web Api Controller操作,导致继承安全规则违反Hosted Http RouteData.get_Route(

时间:2013-12-17 20:56:59

标签: asp.net-mvc-4 asp.net-web-api routing unity-container

我有一个.Net Mvc4项目,我已经为ajax调用添加了一个WebApi控制器和一个基本操作。

当我调用方法时,我得到:

  

覆盖成员时违反了继承安全规则:   'System.Web.Http.WebHost.Routing.HostedHttpRouteData.get_Route()'。   覆盖方法的安全性可访问性必须与   被覆盖的方法的安全可访问性。

我没有进行任何自定义修改或为web Api设置任何工作(我应该这样做吗?)

我注意到DefaultApi路由在我的routeConfig中。 我也在使用Unity Mvc4& Unity Web Api软件包(我已经禁用它来测试它是否导致问题,但似乎不是)。

我的控制器是TestController

动作:

public bool ClearAwaitingNotifications()
{}

&安培; ajax调用将转到:api/test/clearawaitingnotifications

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我在击中控制器时遇到异常,因为:

WebApiConfig.Register(GlobalConfiguration.Configuration);
虽然路由存在于我的Routeconfig.cs中,但从未调用

。我想这是因为我使用模板安装了我的Mvc4项目,该模板安装了一些WebApi的东西并且它有点旧。然后我将此行添加到Global.ascx并收到相同的安全警告,但是对于Global.ascx中的这一行。

https://stackoverflow.com/a/18713412/314963然后帮我解决了这个问题,现在一切正常。简而言之,这是因为使用模板安装Mvc项目,或者因为webapi 4中的某个库已经过时了。