消费网络api,不同机器上的端口

问题描述:

我的简单的web应用程序有web api和web mvc项目。从mvc应用程序我正在使用ajax使用web api服务。消费网络api,不同机器上的端口

现在我的URI看起来像这样

var uri = 'http://localhost:2266/api/cars'; 

和网络API方面,我需要启用通信CORS与我的MVC应用程序。

[EnableCors(origins: "http://localhost:2256", headers: "*", methods: "*")] 

这种设置工作在我的机器上就好了,因为我想和我的朋友分享这个我怎么能做出这样的端口值22562266是每台机器上一样吗?\

或者,如果它是不是你建议如何使这个值可配置?

谢谢你,但显然我是不够清楚:我在问我怎么才能知道应该使用哪个端口 不同的计算机上,并且在该包括 端口,而不是这2256,2266?

+0

给由多个逗号分隔值的起源 – Developer

的端口号仅仅是工具(VS),很容易使你在本地调试(localhost) - 它通过分配都生活在当地的一个随机端口号“分离”每个网站的机器在'localhost'(又名“域”)。

事实上,你可以自己分配一个(或者更改VS分配的任何东西),同时要注意确保它不与本地计算机上使用的其他服务/现有端口发生冲突(详见下文)。

不确定这是什么意思 “我的朋友分享这个”。如上localhostlocal,所以假设在(生活/生产)网络 - 然后分配一个端口号(在你的服务器/ IIS设置) - 它的你的 API,所以你“口授”外部“朋友”访问/连接。

注意事项:

如上所述,就像在本地环境(其限制较少是本地的),在生产/现场网络技术,除了标准的端口(80,443,20,21,22 ,25等),你可能会遇到防火墙的问题,使用哪个端口(与其他现有服务冲突)等,这是一个广泛的话题,坦率地说,自从我完成了网络操作 - TLDR以来,这已经很长时间了。如果它们是完全独立的应用程序(看起来),那么你可能更愿意在现场做同样的事情 - 例如,子域 - www.foo.com(MVC)api.foo.com(API),而不是处理指定端口号手动所有(默认值将申请 - 80http443https)。

Hth。

您可以用逗号分隔的多个来源:

[EnableCors(origins: "http://localhost:2256,http://localhost:2266", headers: "*", methods: "*")] 

MSDN

参数起源类型:允许起源 的System.String逗号分隔列表访问资源。用“*”表示全部。

用于Web API应用程序托管的端口将无法在计算机外部访问,并且在关闭并打开Visual Studio并再次运行Web API时可能会更改。

最好在本地机器上使用域名(例如“apionlocal.com”)托管您的Web API,并在本地机器上创建一个主机条目。

主机条目看上去像127.0.0.1 apionlocal.com

通过运行“IPCONFIG”命令在命令提示符下,并与你的朋友分享您检索计算机的IP netrowk。

您的朋友还需要使用您的机器的IP在他的机器上输入主机条目。

主机条目看上去像<<your computer IP>> apionlocal.com

你的朋友需要使用域名“apionlocal.com”调用API。

您可以使用逗号分隔值在“EnableCors”中配置多个来源。

EnableCors(origins: "http://localhost:2256,<<Url of your friend's application>>", headers: "*", methods: "*")] 
+0

注:假设你正在做 - 'ipconfig' - 就是在同一个地方(子)网的“朋友”?如果没有,这是公共路线能力的IP吗?如果是:本地计算机是否运行已配置为进行外部通信的IIS?如果不是:除了检查前面提到的IIS检查之外还有更多的工作要做 – EdSF

+0

是的,我假定两台计算机都在同一个网络中。如果情况并非如此,那么肯定还有更多工作要做。 –