为什么Web API在部署到IIS时返回404

时间:2015-06-08 08:55:30

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

Windows Server 2012 R2,IIS,VS2013 我已经实现了一个ASP.NET web api,当我在VS2013中调试时,它可以打开IE,我可以正确调用我的web api。 http://localhost:42508/api/log/111

我使用"发布"在VS2013中,将所有文件部署到D:\api_publish

现在,我设置了IIS,在"Default Web Site"下,我添加了一个应用程序"serverapi"。 现在我设置"物理路径"到D:\api_publish\bin(serverapi.dll所在的位置)。然后我使用以下网址访问API,http://192.168.1.100/serverapi/api/log/111

但它返回404 - File or directory not found.

更新

我设置"默认网站"到另一个文件夹路径,并设置应用程序"物理路径"到D:\api_publish\,现在当我访问http://192.168.1.100/serverapi/api/log/111时,它将返回HTTP 500错误。

2 个答案:

答案 0 :(得分:4)

我可以在这里看到几个问题。

  1. 物理路径应设置为D:\api_publish,而不是bin文件夹。
  2. 检查应用程序池是否设置为使用.NET CLR Version v4
  3. 正如您在评论中提到的,默认网站已指向同一物理文件夹。你可以:

    1. 将默认网站移至另一条路径。
    2. 使用默认网站,而不是您创建的serverapi网站。

答案 1 :(得分:0)

您应该使用D:\api_publish作为物理路径。 Bin文件夹不能用于此目的。