在Web表单应用程序中找不到控制器

时间:2018-04-23 10:03:11

标签: asp.net asp.net-web-api webforms controllers

我有一个项目,其中Web表单应用程序中有一个控制器。

我的控制器名为Token

var tapLocationPlacemark: CLPlacemark

此控制器继承自BaseTokenController

 public class TokenController : BaseTokenController
{
    public override bool IsInherited => true;


}

在我的global.asax中,我有一个名为Register的方法:

public abstract class BaseTokenController : ApiController
{
    public abstract bool IsInherited { get; }
    public virtual bool Post([FromBody]TokenValidateArgs args)
    {
        if (!IsInherited)
            throw new Exception("Attempt to call base token controller not allowed");

        return args.Validate();
    }

    public virtual string Get()
    {
        if (!IsInherited)
            throw new Exception("Attempt to call base token controller not allowed");
        return new Token()
    }
}

并在global.asax Application_Start中第一行代码是

 public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute("API default", "api/{controller}/{id}",
            new { id = RouteParameter.Optional });

    }

我确实有这个工作,但是然后我与项目的主分支合并,它停止工作。我无法看到任何变化的东西。

这是错误:

  

     未找到与请求URI匹配的HTTP资源' https://localhost:44398/api/token'。         未找到与名为' token'的控制器匹配的类型。      

是否有其他人遇到类似问题,并且知道如何解决这个问题。我已经阅读了其他线程并尝试通过在控制器上放置RoutePrefix来修复此问题,在global.asax上移动执行顺序并直接调用get()方法

1 个答案:

答案 0 :(得分:0)

因此,对于我的问题,事实证明该项目具有" BaseTokenController"正在运行WebApi的5.2.3版但是Web应用程序项目运行5.2.4导致冲突,导致404错误。为了解决这个问题,我将应用降级为5.2.3