我的简单网络应用程序有web api和web mvc项目。从mvc app我正在使用ajax消费web api服务。
现在我的uri看起来像这样
var uri = 'http://localhost:2266/api/cars';
在web api方面,我需要启用cors与我的mvc app进行通信。
[EnableCors(origins: "http://localhost:2256", headers: "*", methods: "*")]
此设置在我的计算机上正常运行,因为我想与我的朋友分享这个,如何在每台计算机上使此端口值2256
和2266
相同?\
或者,如果您不建议将此值配置为什么?
谢谢,但显然我不够清楚:我问我怎么知道 不同的计算机应该使用哪个端口,并在其上包括 那个端口而不是2256,2266?
答案 0 :(得分:1)
端口号只是工具(VS),便于您在本地调试(localhost
) - 它"分隔"您的每个网站都指定一个随机端口号,所有这些都存在于本地机器的“localhost”(又名"域")下。
事实上,您可以自己分配一个(或更改VS指定的任何内容),并确保它不会与本地计算机中使用的任何其他服务/现有端口冲突(更多信息如下)。
"与我的朋友分享这个"
不确定这意味着什么。如上所述localhost
是local
,假设在(实时/生产)网络上 - 那么你分配一个端口号(在你的服务器/ IIS设置中) - 它&#39 ; 你的 API,这样你就可以决定"如何外部"朋友"可以访问/连接。
警告:
如上所述,就像在您的本地环境(本地环境限制较少),在生产/现场互联网中,除了标准端口(80,443,20,21,22,25等)之外可能会遇到防火墙问题,使用哪些端口(与其他现有服务冲突)等等,这是一个广泛的主题,坦白说,自从我做了网络操作以来已经很长时间了 - TLDR;如果它们是完全独立的应用程序(看起来像),那么你最好在现场做同样的事情 - 例如子域名 - www.foo.com
(mvc)api.foo.com
(api)并且根本不处理手动分配端口号 (默认值适用于80
http
},443
https
}。
H个。
答案 1 :(得分:0)
您可以使用逗号分隔多个来源:
[EnableCors(origins: "http://localhost:2256,http://localhost:2266", headers: "*", methods: "*")]
来自MSDN:
参数 origin 类型:System.String以逗号分隔的原始列表 允许访问资源。使用“*”允许所有。
答案 2 :(得分:0)
用于Web API应用程序托管的端口将无法在您的计算机外部访问,并且在关闭并打开Visual Studio并再次运行Web API时可能会更改。
最好在本地计算机上使用域名(例如" apionlocal.com")托管您的Web API,并在本地计算机上创建主机条目。
主持人条目看起来像127.0.0.1 apionlocal.com
运行" ipconfig"检索计算机的netrowk IP在命令提示符下命令并与您的朋友分享。
您的朋友还需要使用您机器的IP在他的机器上输入主机条目。
主持人条目看起来像<<your computer IP>> apionlocal.com
您的朋友需要使用域名&#34; apionlocal.com&#34;来调用API。
您可以在&#34; EnableCors&#34;中配置多个来源。使用逗号分隔值。
EnableCors(origins: "http://localhost:2256,<<Url of your friend's application>>", headers: "*", methods: "*")]