【问题标题】:Why web API return 404 when deploy to IIS为什么 Web API 在部署到 IIS 时返回 404
【发布时间】:2015-08-22 16:02:22
【问题描述】:

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 所在的位置)。然后我使用下面的 URL 访问 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 错误。

【问题讨论】:

  • 应用程序池的设置是什么?您是否将其设置为使用 .Net 4?
  • 您的网址看起来不正确。
  • 另外,物理路径应该比 bin 文件夹高一级。
  • 由于我的“默认网站”已经指向 D:\api_publish,如果我将 application serverapi 设置为 D:\api_publish,就会发生冲突。那我该怎么办?
  • 将默认网站指向其他地方!

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


【解决方案1】:

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

  1. 物理路径应设置为D:\api_publish,而不是在bin文件夹中。
  2. 检查应用程序池是否设置为使用.NET CLR Version v4

正如您在 cmets 中提到的,默认网站已经指向同一个物理文件夹。您可以:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 2021-03-20
      • 2018-06-30
      • 2011-10-30
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      相关资源
      最近更新 更多