Asp.Net Web API 的 IIS7.5 部署

IIS7.5 Deployment for Asp.Net Web API

我已经完成了在 Amazon 云服务的 windows 服务器 2008R2 机器上的 IIS 7.5 中部署 Web API 的所有步骤。还有其他 WCF 服务可以在外部(服务器外部)和内部(在服务器上)访问。所以我想知道我哪里出错了。

我刚刚创建了一个默认的 Web api 应用程序。你知道那个,值控制器 returns ["Value1","Value2"]。并部署它。

我遵循的步骤是:

  1. 使用 .Net 4.0/集成创建一个适当命名的应用程序池 selected.
  2. 添加了一个网站,select在 1 中编辑了应用程序池,填写了我网站的物理路径,给出了相关的 http 设置(select依次编辑了 3 个可用选项对我来说,全部未分配,::1,我的机器 IP 为 AAA.BBB.CCC.ETC) 并更改了端口,因为同时使用了 80 和 8080。所以我只用了8081.
  3. 然后我在防火墙中解锁了端口 8081(只是因为我教导它可能需要,即使其他人似乎没有,我对此可能是错误的所以我什至暂时关闭了我的防火墙但它仍然没有没用)。

诀窍是,当我完全放弃绑定时……那是……如果我进入编辑绑定。单击绑定并 select 编辑。然后删除主机名文本框中的文本。我的 api 在内部工作(在服务器上)。但我无法从外部(从另一台计算机)访问它。我得到 "This page cannot be displayed".

当我把主机名放回去时,无论是内部还是外部都无法获取。

即使有端口,我也无法通过输入服务器的IP地址来获取它。

由于我在亚马逊云服务中使用服务器,我很好奇是否需要在服务器外部进行一些设置以使端口 8081 可供外界使用?在 Azure 中,您需要使端口在外部可用。如果需要,我不知道如何在亚马逊上执行此操作。

只是为了消除误报: 我知道 .Net 4.5 是 .Net 4.0 框架的一个子集,因此我广泛研究了我的应用程序应该(并且确实)可以工作,即使我只能在应用程序池中 select .Net 4.0(见第 3 点之后)。所以我知道这不是问题。

如有任何帮助,我们将不胜感激。如果我可以澄清问题的任何部分,请告诉我。

鉴于我自己使用SO作为参考,目前还没有答案。自从找到解决方案后,我决定自己回答这个问题。如果有人有更好的解决方案,请发表评论或回答。我不是网络或硬件专家,所以我必须把它放在这里供我自己参考,因为我知道我会在下次必须做的时候忘记这 6 个月。

基本上我部署到 IIS 所遵循的所有步骤都不是问题。我在那里所做的一切都是 100% 正确的。完成以下步骤后,我能够 运行 成功申请。

设置物理服务器时,您只需在防火墙中打开端口以允许访问即可。但是,如果设置虚拟服务器,在 VM 内部的防火墙中打开端口不足以获得访问权限。

如果设置虚拟机,不仅要在虚拟机内部打开端口,还必须在虚拟机后面的物理机上打开端口。

如果在云端进行设置,在 Azure 中,您必须在 VM 外部打开端口。在 Amazon 中,当前(它可能会更改)位于网络和安全选项卡下,然后在安全组子选项卡下,然后选择要在其上打开端口的 VM,然后在入站选项卡下,添加自定义规则并键入端口号。您可能也可能不需要添加出站规则。本质上,如果出站设置为全部,则不需要向出站添加其他规则。

我希望来到这里的其他人会觉得这有帮助。