[英]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: "*")]
這個設置在我的機器上運行得很好,因為我想與我的朋友分享這個,我怎樣才能使每台機器上的端口值2256
和2266
相同?\\
或者,如果這不是您建議使這些值可配置的建議?
謝謝,但顯然我不夠清楚:我問我如何知道在不同的計算機上應該使用哪個端口,並在此基礎上包含該端口而不是 2256、2266?
端口號只是工具 (VS) 使您可以輕松地在本地調試 ( localhost
) - 它通過分配一個隨機端口號來“分隔”您的每個網站,這些端口號都位於“localhost”下的本地計算機中(又名“領域”)。
實際上,您可以自己分配一個(或更改 VS 分配的任何內容),但要注意確保它不與本地計算機中使用的任何其他服務/現有端口沖突(更多信息見下文)。
“與我的朋友分享這個”
不確定這意味着什么。 如上所述localhost
是local
,因此假設在(實時/生產)網絡上-然后您分配一個端口號(在您的服務器/IIS設置中)-這是您的API,因此您“決定”外部“朋友”如何訪問/連接。
注意事項:
如上所述,就像在您的本地環境中(本地限制較少)一樣,在生產/實時互聯網中,除了標准端口(80、443、20、21、22、25 等)之外,您可能會遇到防火牆問題,使用哪些端口(與其他現有服務沖突)等,這是一個廣泛的話題,坦率地說,自從我完成網絡操作以來已經很長時間了 - TLDR; 如果它們是完全獨立的應用程序(看起來如此),那么您可能最好在實時 - 例如子域 - www.foo.com
(mvc) api.foo.com
(api) 上做同樣的事情,而不是處理分配端口號完全手動(默認將適用 - http
為80
, https
為443
)。
嗯。
您可以用逗號分隔多個來源:
[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.