服务器端调用apiController为404提供了iis7

时间:2012-11-29 05:13:43

标签: asp.net-mvc iis-7 asp.net-web-api

这是我的代码:

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行错误:404

但是当我使用Visual Studio 2010开发服务器时,不会发生错误。

1 个答案:

答案 0 :(得分:1)

基本上你必须自己照顾这些案件。

对于开发,API的路径是:

http://localhost/api/MyAPI

对于IIS上的制作,它是:

http://localhost/WebAPITest/api/MyAPI

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

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

部署到IIS时,将Settings.BaseUrl更改为http://localhost/WebAPITest/

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