如何解决找不到C#Web API错误404

时间:2019-12-23 14:07:21

标签: c# asp.net asp.net-web-api-routing webapi

我已经创建了C#Web API,并且能够在本地主机上访问它,但是在服务器部署后,我收到404 not found错误。 邮递员显示错误-“您要查找的资源已被删除,名称已更改或暂时不可用。”

我已经使用Visual Studio发布了代码,然后使用文件浏览器将文件上传到服务器。 服务器上的文件夹被标记为应用程序。 我可以访问该文件夹中存在的示例html文件,但无法访问api本身。

Global.asax.cs具有以下代码-

public class WebApiApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;
    }
}

RouteConfig.cs

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

        );
}

WebApiConfig.cs

public static void Register(HttpConfiguration config)
{
    // Web API configuration and services

    // Web API routes
    config.MapHttpAttributeRoutes();

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

我正在尝试调用普通的get方法

[BasicAuthentication]
[HttpGet]
[Route("api/getmethodapi")]
public IEnumerable<string> Get()
{
    return new string[] { "value1", "value2" };
}

我正在访问的URI类似于-

https://mysampleapp.com/sampleFolder/api/getmethodapi

我可以使用Postman以及本地主机上的C#控制台应用程序获取值。 任何帮助/建议将不胜感激。

0 个答案:

没有答案