配置与错误无关

以下是我在App_start/WebApiConfig.cs中对Web API的配置:

public static void Register(HttpConfiguration config)
    {
        // Web API routes
        config.MapHttpAttributeRoutes();

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

这是我的全球计划.asax等级:

GlobalConfiguration.Configure(WebApiConfig.Register);

这就是错误所在

但每当应用程序启动时,我都会遇到以下例外:

路由模板分隔符"/"不能连续出现.它必须由参数或文字值分隔

StackTrace:

at System.Web.Http.Routing.RouteParser.Parse(String routeTemplate)
at System.Web.Http.Routing.DirectRouteFactoryContext.CreateBuilder(String template, IInlineConstraintResolver constraintResolver)
at System.Web.Http.Routing.DirectRouteFactoryContext.CreateBuilderInternal(String template)
at System.Web.Http.Routing.DirectRouteFactoryContext.CreateBuilder(String template)
at System.Web.Http.RouteAttribute.System.Web.Http.Routing.IDirectRouteFactory.CreateRoute(DirectRouteFactoryContext context)
at System.Web.Http.Routing.AttributeRoutingMapper.CreateRouteEntry(String prefix, IDirectRouteFactory factory, IReadOnlyCollection`1 actions, IInlineConstraintResolver constraintResolver, Boolean targetIsAction)
at System.Web.Http.Routing.AttributeRoutingMapper.AddRouteEntries(SubRouteCollection collector, String prefix, IReadOnlyCollection`1 factories, IReadOnlyCollection`1 actions, IInlineConstraintResolver constraintResolver, Boolean targetIsAction)
at System.Web.Http.Routing.AttributeRoutingMapper.AddRouteEntries(SubRouteCollection collector, HttpControllerDescriptor controller, IInlineConstraintResolver constraintResolver)
at System.Web.Http.Routing.AttributeRoutingMapper.AddRouteEntries(SubRouteCollection collector, HttpConfiguration configuration, IInlineConstraintResolver constraintResolver)
at System.Web.Http.Routing.AttributeRoutingMapper.<>c__DisplayClass2.<>c__DisplayClass4.<MapAttributeRoutes>b__1()
at System.Web.Http.Routing.RouteCollectionRoute.EnsureInitialized(Func`1 initializer)
at System.Web.Http.Routing.AttributeRoutingMapper.<>c__DisplayClass2.<MapAttributeRoutes>b__0(HttpConfiguration config)
at System.Web.Http.HttpConfiguration.EnsureInitialized()
at System.Web.Http.GlobalConfiguration.Configure(Action`1 configurationCallback)
at Sample.Rest.WebHost.WebApiApplication.Application_Start() in d:\sample\Sample.Rest.WebHost\Global.asax.cs:line 33

该错误是由路径属性引起的

这就是我在控制器上使用属性路由的方式:

[RoutePrefix("v1")]
public class MarketController : ApiController
{
    [HttpGet]
    [Route("/marketdata/tickerinfo")]
    public IHttpActionResult TickerInfo(string currencyPair)
    {

推荐答案

出现上述错误的原因是我在操作的路由属性中使用了额外的‘/’.上述控制器中定义的动作应如下所示:

    [HttpGet]
    [Route("marketdata/tickerinfo")]
    public IHttpActionResult TickerInfo(string currencyPair)
    {

Asp.net相关问答推荐

AJAX返回未定义、失败

从组件属性调用异步方法的正确方法

为什么 Web 架构应该是松耦合的?

使 ASP.NET WCF 将字典转换为 JSON,省略键和值标签

ASP.Net - App_Data & App_Code 文件夹?

.NET 站点如何隐藏其文件的 .aspx 扩展名?

如何从以特定名称开头的 appsettings 键中获取所有值并将其传递给任何数组?

将复选框的值传递给 asp.net mvc4 中的控制器操作

GridView 与嵌套类的属性绑定

Web Api 参数始终为空

温莎城堡有什么缺点吗?

排序下拉列表? - C#,ASP.NET

为应用程序池Classic .NET AppPool提供服务的进程与 Windows 进程激活服务发生了致命的通信错误

用于验证的数据注释,至少一个必填字段?

无法共同创建探查器错误 - 但未使用探查器

使用 VirtualPathProvider 从 DLL 加载 ASP.NET MVC 视图

不同域的登录页面

为什么 HttpWebRequest 会抛出异常而不是返回 HttpStatusCode.NotFound?

Docker 中的 ASPNETCORE_ENVIRONMENT

ASP.NET:在 Response.Redirect(...) 之后代码会发生什么?