我创建了一个 C# Web API,我可以在本地主机上访问它,但是在服务器部署后我收到 404 not found 错误。Postman 显示错误 - “您要查找的资源已被删除、名称已更改或暂时不可用。”。
我已经使用 Visual Studio 发布了代码,然后使用 file-zilla 将文件上传到服务器。服务器上的文件夹被标记为应用程序。我可以访问文件夹中存在的示例 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;
}
}
路由配置.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# 控制台应用程序获取值。任何帮助/建议将不胜感激。