C# 使用web api、不同机器上的端口

C# 使用web api、不同机器上的端口,c#,.net,asp.net-mvc,asp.net-web-api,C#,.net,Asp.net Mvc,Asp.net Web Api,我的简单web应用程序有web api和web mvc项目。在mvc应用程序中,我使用ajax使用web api服务 现在我的uri看起来像这样 var uri = 'http://localhost:2266/api/cars'; 在WebAPI方面,我需要启用cors,以便与我的mvc应用程序进行通信 [EnableCors(origins: "http://localhost:2256", headers: "*", methods: "*")] 这个设置在我的机器上运行得很好,因为我

我的简单web应用程序有web api和web mvc项目。在mvc应用程序中,我使用ajax使用web api服务

现在我的uri看起来像这样

var uri = 'http://localhost:2266/api/cars';
在WebAPI方面,我需要启用cors,以便与我的mvc应用程序进行通信

[EnableCors(origins: "http://localhost:2256", headers: "*", methods: "*")]
这个设置在我的机器上运行得很好,因为我想和我的朋友分享这个设置,我怎样才能使每个机器上的端口值
2256
2266
相同\

或者,如果不是,您建议如何配置此值

谢谢你,但很明显我还不够清楚:我在问我怎么知道 不同的计算机应该使用哪个端口,并且在该端口上包括 那个港口而不是这个2256266


可以使用逗号分隔多个原点:

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

参数原点类型:系统字符串逗号分隔的原点列表 允许访问资源的。使用“*”可允许所有


端口号只是一种工具(VS),使您能够轻松地在本地进行调试(
localhost
)-它通过分配一个随机端口号来“分隔”每个网站,所有端口号都位于本地计算机的“localhost”(又称“domain”)下

实际上,您可以自己分配一个(或更改VS分配的任何内容),但要注意确保它不会与本地计算机中使用的任何其他服务/现有端口冲突(详见下文)

“与我的朋友分享”

不确定那是什么意思。如上所述,
localhost
local
,因此假设在(实时/生产)网络上-然后您分配一个端口号(在服务器/IIS设置中)-它是您的API,因此您可以“指示”外部“朋友”如何访问/连接

注意事项:

如上所述,就像在您的本地环境(本地限制较少)中一样,在生产/实时internet中,除了标准端口(80、443、20、21、22、25等)之外,您可能会遇到防火墙问题,使用哪些端口(与其他现有服务冲突),等,这是一个广泛的话题,坦率地说,这是一个很长的时间以来,我做了网络操作-TLDR;如果它们是完全独立的应用程序(看起来),那么您最好在live上执行相同的操作—例如子域—
www.foo.com
(mvc)
api.foo.com
(api),而不要手动分配端口号(默认值将适用于
http
80
https
443


Hth.

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

最好在本地计算机上使用域名(如“apionlocal.com”)托管Web API,并在本地计算机上创建主机条目

主机条目看起来像
127.0.0.1 apionlocal.com

通过在命令提示符下运行“ipconfig”命令检索计算机的netrowk IP,并与朋友共享

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

主机条目看起来像
apionlocal.com

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

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

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

EnableCors(来源:http://localhost:2256,用逗号分隔原点,给出多个值注:假设-
ipconfig
-是同一本地(子)中的“朋友”net?如果不是,这是否是可公开路由的IP?如果是:本地计算机是否运行为外部通信配置的IIS?如果不是:除了检查前面提到的IIS之外,还要做更多的工作检查是,我假设两台计算机都在同一网络中。如果不是这样,那么肯定会有更多的w有很多工作要做。