如何使用Visual Studio 2017将ASP.NET Web API 2项目发布到IIS 8.5?

时间:2017-12-13 00:13:00

标签: asp.net visual-studio iis asp.net-web-api deployment

我有一个ASP.NET Web API 2项目,可以在我的本地计算机上按预期编译和工作,但是当我发布到我的IIS 8.5服务器时,我的所有请求都返回状态代码500服务器错误。没有提供其他信息。这是我第一次尝试发布Web API。

我在IIS中创建了一个站点,将其配置为与我已建立的其他站点相同,并将其设置为仅HTTPS。我相信该网站配置正确,因为我有一个基本的default.html页面,我可以轻松连接到,但我似乎无法进行任何API调用。我使用Postman来测试我的API调用。

在Visual Studio中,我使用了 Web部署 Web部署包文件系统发布选项。在发布期间使用"预编译"后两者的选择似乎没有什么区别。

Web Deploy 拒绝验证连接,说它无法连接到远程计算机并确保已安装Web Deploy。我可以通过"程序和功能"来验证它,我已经尝试了几乎所有我能想到的URI组合,以使其无法连接。错误将我引导至此Microsoft troubleshooting page,但建议的命令似乎无法正常工作。

Web部署包允许我在本地文件系统上创建.zip,然后将其传输到托管服务器并使用IIS中的Web部署进行导入。下面的屏幕截图是我在导入后在IIS网站的根目录中看到的。我手动添加HTML文件进行测试,因为它不属于我的应用程序。 bin文件夹似乎包含所有必需的DLL文件。

Web API IIS website file structure

文件系统发布输出与Web Deploy Package相同的结构,但行为没有区别。

我有什么遗失的东西吗?我只是不知道还有什么可以解决问题。

1 个答案:

答案 0 :(得分:0)

要重复@n.piskunov's comment,我的应用没有任何错误明细政策。 Jimmy Bogard的这篇文章解释说,Web API不尊重web.config文件的customErrors设置,这就是我正在使用的设置。它还解释了如何解决上述问题。

启用详细的错误消息后,我能够发现服务器上没有安装目标框架。安装正确的目标框架解决了我的问题。