【发布时间】:2014-06-19 17:58:32
【问题描述】:
我开发了一个新的 WEB API 2,它在本地运行良好,但是当我将相同的代码上传到我的生产服务器(在本例中为 Arvixe)时,我调用它时得到的只是 404。我花了 HOURS 搜索网络,阅读论坛等。并且找不到任何解决方案,所以我在这里问作为我最后的努力。
我目前仅使用在 Visual Studio 中执行 New Project > ASP.NET Web API 2 Empty Project 时创建的默认项目进行测试。这将创建一个带有单个 ValuesController 的空项目。您应该能够通过调用/api/values 来响应 JSON,但这甚至不起作用。
我正在使用 Fiddler 在本地和 Web 服务器上测试 API。
http://localhost:1993/api/values <--- works great
但是
http://api.mydomain.com/api/values <--- returns 404
注意:在这种情况下,我创建了一个子域“api”,但 API 代码的所有内容与创建时相比没有变化。
为什么这在本地工作,但不能在生产网络服务器上工作?
【问题讨论】:
-
检查所有 dll 是否已部署,并且该站点是否设置为 .NET 4.5.1 应用程序池中的应用程序。
-
所有的 DLL 都在那里,它在 ASP.NET 4.0 Integrated 下运行,但 .NET 4.5.1 已安装并在服务器上运行。老实说,我看不出有什么理由不应该这样做。
-
你的应用程序的根目录呢?是否在远程服务器上显示默认页面?
-
你有想过这个吗?我遇到了完全相同的问题。
-
汤姆,是的,我确实弄明白了。它最终成为服务器端问题,无法通过 IIS 正确配置。使用 Arvixe,我必须将 api.mydomain.com 创建为自己的网站,以使其正常运行。我不确定您的环境是否会出现这种情况,但值得一试。
标签: asp.net asp.net-mvc asp.net-web-api asp.net-web-api2