0

这是我的代码:

1 HttpClient client = new HttpClient();
2 client.BaseAddress = new Uri("http://localhost/");
3 HttpResponseMessage message = client.GetAsync("api/MyAPI").Result;
4 IEnumerable<string> supplies = 
                 message.Content.ReadAsAsync<IEnumerable<string>>().Result;
5 return View(supplies);

并且错误发生在第 3 行 Error:404

但是当我使用 Visual Studio 2010 开发服务器时,没有出现错误。

4

1 回答 1

1

本质上,您必须自己在这里处理这些案件。

对于开发,您的 API 的路径是:

http://localhost/api/MyAPI

对于 IIS 上的生产,它是:

http://localhost/WebAPITest/api/MyAPI

最简单的方法,实际上是我们在我公司所做的,是将基本路径放入配置(可能是应用程序设置)中,然后执行以下操作:

Settings.BaseUrl = "http://localhost/";
client.BaseAddress = new Uri(Settings.BaseUrl);

当您部署到 IIS 时,更改Settings.BaseUrlhttp://localhost/WebAPITest/.

理想情况下,您还可以删除 VS 开发服务器并在 IIS 上进行调试。(这需要以管理员权限运行 VS)

于 2012-11-29T09:37:16.677 回答