【发布时间】:2016-04-20 08:52:33
【问题描述】:
我们有一个已经对外公开的公共网站,尽管实际上那里什么都没有。只需 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 下。
【问题讨论】:
-
所以我学到了一些可能会有所帮助的东西。本地 IIS 是 7.5 版,尝试发布它的生产服务器是 IIS 7.0。我在网上阅读了在配置文件中添加 runAllManagedModulesForAllRequests="true" 标记将解决我的问题,但可惜它所做的只是创建了其他错误。例如,看到我用vs2015开发的,目标框架是4.5.2,显然IIS7.0不支持。我尝试将我的项目更改为 4.0,但我所有的 NuGet 模块都开始失败。总而言之,我仍然不确定如何发布 API。
-
从您的问题中我不清楚您使用什么来尝试部署网站。您使用的是 Visual Studio 的“发布 Web”向导,还是其他?
-
不管我用什么方法,结果都是一样的。如果我通过 VS 在本地“发布”,它可以工作。如果我通过 VS 远程“发布”,它不起作用。如果我在本地 XCOPY,它可以工作,如果我远程 xcopy,它不起作用。这一切都归结为版本 7 和 7.5 之间 IIS 版本的差异。我已经让它工作了,但我必须在两个系统之间大幅修改我的 web.config 才能使其工作。
标签: c# asp.net iis asp.net-web-api deployment