通过端口21绑定Asp.NET WebApi

时间:2014-08-19 10:58:46

标签: asp.net-web-api

这可能不是这个问题的正确位置,因为它是部分网络,但是这里就是。

我希望将WebApi(使用ASP.NET MVC WebApi框架)整合到我们网络外部的客户端计算机上。但是,客户端计算机通过我们的软件没有身份验证的代理服务器来解析Web流量。我们注意到可以使用传出的FTP连接。

所以我想知道我们是否可以托管webapi并让客户端机器通过端口21连接出去?这甚至有意义吗?对不起,如果这是一个愚蠢的问题。

1 个答案:

答案 0 :(得分:0)

我设法找到了一些答案,并认为我会分享给可能感兴趣的人。

将WebApi绑定到80以外的端口

这是可能的,但很棘手。当您将Api项目发布到IIS(或您托管它的任何地方)时,您只需将其绑定到备用端口即可。然后,您还要确保在路由器中转发该端口。然后,API的客户端只使用您的自定义端口指定主机,以通过该端口访问端点:http://myhostname.com:21/api/values或其他任何内容。

并发症

测试端点可能很棘手,因为Chrome会阻止通过某些端口发送的HTTP流量 - 端口21就是这样一个端口。因此,要测试它,您需要编写一个客户端exe,它可以访问端点以确保它们正常工作(如控制台应用程序)。

尽管把这一切搞清楚了,我还是无法通过防火墙连接出去。我怀疑某些配置会阻止流量,因为即使它通过开放端口(21)传出,它也是 FTP流量:它的HTTP流量。

解决方案

我想到,SOAP通过一系列协议(FTP,SMTP,HTTP,仅举几例)进行操作,并将其消息格式化为XML。因此,在这种情况下,通过端口21使用SOAP服务比使用严格 HTTP的REST更有意义。