【发布时间】:2016-03-29 01:57:03
【问题描述】:
我在 ASP.NET 5 中创建了一个应用程序。目前我只是尝试公开一个非常简单的 Web.API 方法来尝试使其工作。控制器如下所示:
using System.Threading.Tasks;
using Microsoft.AspNet.Mvc;
namespace Api
{
[Route("api/[controller]")]
public class ValuesController : Controller
{
[HttpGet("{id}")]
public async Task<Value> Get(int id)
{
return await Task.Factory.StartNew(() => new Value { Id = id });
}
}
}
我尝试遵循 asp.net 文档 here 和 here 中提供的两个教程。
我已将我的网站发布到我机器上的某个位置,并设置了 IIS 以指向它。我已启用 IIS 日志记录。当我尝试从 IIS 浏览并转到 url http://localhost/TestApi/api/Values/1 时,我在浏览器中收到 404 响应。这对我来说也很有趣,因为在 ResponseHeaders 我有一个看起来像这样的:服务器:Kestrel。 这不应该是 IIS 吗?
我还在我的日志目录中获得了一个日志文件,它看起来像这样:
Hosting environment: Production
Now listening on:http://localhost:20488
Application started. Press Ctrl+C to shut down.
不过,当我转到 http://localhost:20488/api/Values/1 时,我会返回我的 JSON 对象。 { ID:1 }
我不知道我做错了什么。我进行了很多搜索,试图找出什么是正确的配置才能让它与 IIS 一起使用,但仍然没有找到答案。
知道我做错了什么或如何让它按预期工作吗?
我也查看了这些博客文章,它们似乎是很好的资源,但没有关于我遇到的问题的任何信息:strathweb、blogs.msdn
更新: 我在带有 IIS 10 的 Windows 10 上尝试了此操作,但遇到了同样的问题,因此我从问题的标题中删除了 IIS 7.5,因为它似乎不是 IIS 7.5 特定的。
【问题讨论】:
-
抱歉,可能不是很清楚,但我已经这样做了,并且在我的帖子底部包含了一个链接。
-
您说localhost:20488/api/Values/1 返回预期的json 值,但您从未说过通过IIS 访问它时返回什么?您使用的是 IIS 虚拟目录吗?例如。 localhost/MyApp/api/Values/1
-
对不起,你是对的,我以为我之前已经包含了。我收到 404 错误。
标签: iis asp.net-web-api asp.net-core