将WebAPI部署到外部网站

时间:2016-01-14 20:58:14

标签: c# asp.net iis asp.net-web-api deployment

我们有一个已经暴露在外面的公共网站,但实际上那里并没有什么。简单的default.htm文件带有"即将推出"其中的文字。 (http://vensuresoftware.com/

我们还有一个我们想要添加到本网站的WebAPI。当我在本地发布到我的IIS6时,它没有问题。它被http://localhost/HRConnect/api/Claims访问就好了。我使用PostMan,一个C#客户端和Javascript AJAX来访问它就好了。我也可以在该URL的浏览器中加载它,并获得适当的默认控制器和操作。

然而,我完全无法在网站上完成同样的事情。理想情况下,我希望将其作为虚拟目录包含在http://vensuresoftware.com中,并将其作为http://vensuresoftware.com/HRConnect/api/Claims访问,但我没有运气这样做。

我曾尝试将其添加为虚拟目录以及该特定网站下的应用程序,但是当我访问该URL时,我得到的只是"您要查找的资源已被删除,名称已更改,或暂时不可用。"

我确保应用程序池正确,并且具有适当的用户并且传递连接测试成功。但我无法访问该服务或URL。

关于我可以尝试的任何想法或建议?我不确定我还能在这里包含什么。在IIS中没有什么特别的,真的没什么特别的服务。其中只有3个动作。正如我所说的那样,这一切都在本地很好地工作,但在localhost下。

1 个答案:

答案 0 :(得分:1)

IIS 7没有对无扩展名URL的内置支持,这会导致许多令人头疼的问题,试图让MVC和Web API应用程序运行。我已经使用这两个选项工作了。选择适合你的那个。

  1. 安装this IIS patch,允许IIS 7处理无扩展名的网址。

  2. 如果补丁不是一个选项,因为您担心会破坏服务器上的其他站点,您可以在this answer中找到Web.config调整。您必须为服务器上运行的每个MVC / Web API应用程序执行此操作。