我有一个.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
我该如何解决这个问题?
答案 0 :(得分:0)
我在击中控制器时遇到异常,因为:
WebApiConfig.Register(GlobalConfiguration.Configuration);
虽然路由存在于我的Routeconfig.cs中,但从未调用。我想这是因为我使用模板安装了我的Mvc4项目,该模板安装了一些WebApi的东西并且它有点旧。然后我将此行添加到Global.ascx并收到相同的安全警告,但是对于Global.ascx中的这一行。
https://stackoverflow.com/a/18713412/314963然后帮我解决了这个问题,现在一切正常。简而言之,这是因为使用模板安装Mvc项目,或者因为webapi 4中的某个库已经过时了。