【发布时间】:2016-05-27 11:16:57
【问题描述】:
我创建了一个非常基本的 Web API 项目。当我从 VS 运行应用程序并点击http://localhost:57401/users/getmessage 之类的网址时,我能够得到响应。在我将它托管在 IIS 上并提供绑定后,我无法访问相同的 url。我收到 404 错误。我点击的 URL 是 http://testapi.com:6060/users/getmessage,这给出了 404。如果我点击 http://testapi.com:6060/Default.html,我会得到没有任何错误的页面。 404 错误仅适用于 api。这是我用于控制器方法的路由属性:
[Route("users/getmessage/"), HttpGet]
WebApiConfig.cs 是这样的:
public static void Register(HttpConfiguration config)
{
config.EnableCors();
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new RequestHeaderMapping("Accept", "text/html", StringComparison.InvariantCultureIgnoreCase, true, "application/json"));
}
可能出了什么问题?我在哪里做错了?
【问题讨论】:
-
这些路由问题很痛苦,我承认。你可以试试:testapi.com:6060/users/users/getmessage
-
我希望你的 API 直接发布在你的服务器端口 6060 上的网站上,即在网站 ->
下(当你展开这个你可以看到 bin 文件夹等)?如果没有,您可以共享 IIS 管理器的文件夹结构。 -
@RyanPeters 不。它工作得不好。
-
@RaviA。我可以看到应用程序下的 bin 文件夹。
-
如果你能分享 IIS 管理器的图像,那就太好了。除此之外,我希望您已经安装了所有必要的组件(应用程序开发功能),尽管如果缺少某些安装,您不会看到 404。您可以尝试启用 FREB (iis.net/learn/troubleshoot/using-failed-request-tracing/…) 并查看扩展少处理程序是否实际被调用。
标签: c# asp.net-mvc iis asp.net-web-api