角度应用程序正在获得访问权限,但从另一个系统调用时未访问 webapi,但在服务器内尝试工作。为啥?
Posted
技术标签:
【中文标题】角度应用程序正在获得访问权限,但从另一个系统调用时未访问 webapi,但在服务器内尝试工作。为啥?【英文标题】:The angular app is getting access but webapi is not getting accessed when called from another system but works tried within the server. Why?角度应用程序正在获得访问权限,但从另一个系统调用时未访问 webapi,但在服务器内尝试工作。为什么? 【发布时间】:2021-10-10 19:55:29 【问题描述】:今天我在一个问题上花了大约 10 个小时,但没有得到解决。我对 Angular、webapi 和部署等非常陌生。
如果可以,请帮助我。
看。
我在 IIS 上部署了一台服务器
-
一个 Web API 项目(端口:81)
一个角度应用程序(端口:80)
当我尝试使用 IP 地址和端口号在浏览器中访问 Angular 应用程序时,它会在服务器内工作并在需要时调用 Web API 方法。很好。
但是,当我尝试从位于同一网络中的电脑访问 Angular 应用程序时,该应用程序会被访问,但未检索到 webAPI,并在 Chrome 的“网络”选项卡和控制台中返回错误。
Error: Uncaught (in promise): C: "headers":"normalizedNames":,"lazyUpdate":null,"headers":,"status":0,"statusText":"Unknown Error","url":"http://xxx.xxx.xxx.xxx:81/api/Types/TopType","ok":false,"name":"HttpErrorResponse","message":"Http failure response for http://xxx.xxx.xxx.xxx:81 0 Unknown Error","error":"isTrusted":true
Angular 应用程序允许使用标题、来源和所有内容。 (*)
另外,我尝试使用浏览器 ipaddress:81 从我的电脑访问 Web API,然后它返回“响应时间太长”消息,因此无法访问。
但我认为我的 PC 不需要访问 API,因为我正在调用 Angular 应用程序,而它又在服务器中调用 API 但不确定。
在服务器上,在 Angular 应用程序的 env.js
中,我使用 IP 地址和端口而不是 localhost:81 提供 API 的 URL。
此外,将 Angular 应用程序保留在端口 80 上的原因是,当我为其分配其他端口时,它会停止访问。
【问题讨论】:
Web.Api 是项目还是.NET 项目? 是的。协调 【参考方案1】:@Afaaqa 你能不能试着把这些放在 Program.cs 中的 CreateHostBuilder 方法中
builder.UseUrls("[https or http]://*:[your port number]");
替换时也删除 []
【讨论】:
@Afaaqa 添加此行后,您必须使用这样的网址 [https 或 http]://YOUR_IP_V4:PORT_NUMBER 并检查您的系统防火墙是否可能阻止请求。以上是关于角度应用程序正在获得访问权限,但从另一个系统调用时未访问 webapi,但在服务器内尝试工作。为啥?的主要内容,如果未能解决你的问题,请参考以下文章