【问题标题】:Server Error in '/' Application while running api url运行 api url 时“/”应用程序中的服务器错误
【发布时间】:2018-07-07 20:14:32
【问题描述】:

我正在调用一个返回服务器错误的 API http://169.38.100.206/sr/gsr?spn=NEWGEN-00097

找不到资源。 说明:HTTP 404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。

请求的网址:/sr/gsr

我的路线配置是

公共类RouteConfig { 公共静态无效注册路由(RouteCollection 路由) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "AMMReport",
            url: "sr/gsr/{id}",
            defaults: new { controller = "SupervisorReport", action = "GetSupervisorReport", id = UrlParameter.Optional }
            );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Login", action = "Login", id = UrlParameter.Optional });


        }
    }

我的问题实际上是这个 api 用于自动向客户端发送一条短信,即像这样

您好,您有 0/19 人报告今天的活动数量为 0。然而,19/19 人没有报告任何活动,1 人正在休假。点击http://169.38.100.206/sr/gsr?spn=NEWGEN-00097 获取活动报告。需要在 url 中隐藏动作名称和控制器名称,即我给了 sr 和 gsr.bt 它不起作用。说

描述:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下 URL 并确保其拼写正确。

请求的网址:/sr/gsr

【问题讨论】:

  • 这是如何部署的? IIS 作为 ASP.NET 应用程序? URL 不应该包含应用程序名称吗?

标签: c#


【解决方案1】:

您应该提到位于 App_Start 文件夹中的 WebApiConfig.cs 中的 api 路由,而不是 App Route Config File。但是如果您想在自定义控制器中调用操作,您可以在没有路由配置的情况下执行此操作。只需在上面添加 [HttpGet]您想调用的方法。但是我建议创建一个 WebApi 控制器来处理应用程序中的所有 api 请求。

下面应该可以解决您的问题

    [HttpGet]
    public IQueryable<SupervisorList> GetSupervisorReport()
    {
        return true;
    }

创建新的 API 控制器

  1. 右键单击您的 Controllers 文件夹并选择添加新项目
  2. 从列表中选择 Web API 控制器并单击添加
  3. 在 API 控制器中,您应该能够纠正您的 Api 方法。使用 [HttpGet], [HttpPost] 之类的注解提及方法类型。
  4. 在 WebApiConfig.cs 中更改

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

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

这将使您能够创建自定义 api 方法

【讨论】:

  • 感谢您的 cmets
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-02
  • 2012-11-02
  • 1970-01-01
  • 1970-01-01
  • 2017-09-18
相关资源
最近更新 更多