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

问题描述 投票:0回答:1

我已经创建了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#控制台应用程序获取值。任何帮助/建议,将不胜感激。

c# asp.net asp.net-web-api-routing webapi
1个回答
0
投票

如果您能够拉起页面

https://mysampleapp.com/ 

在浏览器中,如果您看到HomeController索引页,则表明您的应用服务器配置正确。

接下来,根据WebApiConfig.cs中的API路由配置,请尝试:

https://mysampleapp.com/api/getmethodapireaching 
© www.soinside.com 2019 - 2024. All rights reserved.