簡體   English   中英

使用 web api,不同機器上的端口

[英]consuming web api, ports on different machine

我的簡單 web 應用程序有 web api 和 web mvc 項目。 從 mvc 應用程序我正在使用 ajax 使用 web api 服務。

現在我的 uri 看起來像這樣

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

在 web api 端,我需要啟用 cors 以與我的 mvc 應用程序通信。

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

這個設置在我的機器上運行得很好,因為我想與我的朋友分享這個,我怎樣才能使每台機器上的端口值22562266相同?\\

或者,如果這不是您建議使這些值可配置的建議?

謝謝,但顯然我不夠清楚:我問我如何知道在不同的計算機上應該使用哪個端口,並在此基礎上包含該端口而不是 2256、2266?

端口號只是工具 (VS) 使您可以輕松地在本地調試 ( localhost ) - 它通過分配一個隨機端口號來“分隔”您的每個網站,這些端口號都位於“localhost”下的本地計算機中(又名“領域”)。

實際上,您可以自己分配一個(或更改 VS 分配的任何內容),但要注意確保它不與本地計算機中使用的任何其他服務/現有端口沖突(更多信息見下文)。

“與我的朋友分享這個”

不確定這意味着什么。 如上所述localhostlocal ,因此假設在(實時/生產)網絡上-然后分配一個端口號(在您的服務器/IIS設置中)-這是您的API,因此您“決定”外部“朋友”如何訪問/連接。

注意事項:

如上所述,就像在您的本地環境中(本地限制較少)一樣,在生產/實時互聯網中,除了標准端口(80、443、20、21、22、25 等)之外,您可能會遇到防火牆問題,使用哪些端口(與其他現有服務沖突)等,這是一個廣泛的話題,坦率地說,自從我完成網絡操作以來已經很長時間了 - TLDR; 如果它們是完全獨立的應用程序(看起來如此),那么您可能最好在實時 - 例如子域 - www.foo.com (mvc) api.foo.com (api) 上做同樣的事情,而不是處理分配端口號完全手動(默認將適用 - http80https443 )。

嗯。

您可以用逗號分隔多個來源:

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

MSDN

參數origins類型:System.String 逗號分隔的允許訪問資源的源列表。 使用“*”允許所有。

用於您的 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

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

您可以使用逗號分隔值在“EnableCors”中配置多個源。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM