我有一个项目,其中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()方法
答案 0 :(得分:0)
因此,对于我的问题,事实证明该项目具有" BaseTokenController"正在运行WebApi的5.2.3版但是Web应用程序项目运行5.2.4导致冲突,导致404错误。为了解决这个问题,我将应用降级为5.2.3