如何在 IIS 上部署 Angular 和 .NET Core Web API?

2023-11-25

我们在 IIS 上有两个网站,分别用于 angular_client 和 web_api,托管捆绑包已安装,并且已授予 IUSR、网络、网络服务和Everyone 等用户的权限。

每个站点的导航单独工作,即在 API 中,调用http://localhost:51975/api/用户,结果是所有用户的列表。

问题是 Angular 登录页面无法与 API 通信来验证用户身份:

OPTIONS http://localhost:51975/api/user/authenticate net::ERR_CONNECTION_REFUSED

我尝试将与API关联的IP修改为静态IP,即10.1.x.y,然后告诉Angular调用http://10.1.x.y:51975/api/user/authenticate反而。

在 API 中,我启用了将日志发送到浏览器以及日志文件夹,它显示的唯一日志是:

Hosting environment: Production
Content root path: C:\inetpub\wwwroot\api
Now listening on: http://127.0.0.1:39834
Application started. Press Ctrl+C to shut down.
Application is shutting down...

为什么它在其他端口而不是关联的 51975 上侦听?

为什么 Angular 到 API 的连接被拒绝?

为什么应用程序关闭?

这是执行此操作的正确方法吗?

UPDATE 1

在服务器上ONLY,应用程序运行良好,配置如下:

  1. Angular 位于 10.x.y.z:4200,

  2. API 10.x.y.z:51975,

问题是,当我尝试使用公共IP或主机名时,我仍然只能访问Angular,而不能访问Web API,我尝试为API分配主机名,但它还不起作用!

UPDATE 2

我还在我的主机名域上允许了端口 4200 和 51975。

UPDATE 3

我在 IIS 上托管 Web API,API 和 Angular 位于同一服务器上,但位于不同的网站上。

我删除了有关修复 CORS 的声明,因为我在浏览器控制台上仍然有警告,这是错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://{public IP}:51975/api/user/authenticate. (Reason: CORS request did not succeed).[Learn More]

Object { headers: {…}, status: 0, statusText: "Unknown Error", url: "http://{public IP}:51975/api/user/authenticate", ok: false, name: "HttpErrorResponse", 
 message: "Http failure response for http://{public IP}:51975/api/user/authenticate: 0 Unknown Error", error: error }


OPTIONS Http failure response for http://{public IP}:51975/api/user/authenticate net::ERR_CONNECTION_TIMED_OUT

关于CORS,这是我的配置,在本地运行良好:

 //In ConfigureServices method
 services.AddCors();

 //In Configure method
 app.UseCors(options => options.WithOrigins("http://localhost:4200/").AllowAnyMethod().AllowAnyHeader());

谢谢


CORS 错误解释了您需要了解的一切。如果您还使用通过 DNS 名称进行访问,则还需要为公共 IP 和 DNS 配置 CORS。它必须配置为与您用于访问 Angular 应用程序的完全相同的 URL。

app.UseCors(options => 
   options.WithOrigins(
      "http://localhost:4200/",
      "http://{public IP}:{public port}/",
      "http://{public DNS name}:{public port}/"
   ).AllowAnyMethod().AllowAnyHeader());

您只需要 Angular 客户端地址的 CORS 设置,因为 Angular 应用程序需要获得向您的 Web API 发出 CORS 请求的权限。它通过公共地址进行呼叫,因此localhost配置没有帮助,这只会在您使用本地主机本地访问它时有所帮助。

以下是指向的链接有关 CORS 的 Angular 文档Microsoft 文档如何启用 CORS其中有详细描述。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 IIS 上部署 Angular 和 .NET Core Web API? 的相关文章

  • 如何从编译中排除 ASP.NET 网站代码隐藏文件?

    我正在重构一堆 ASP NET 页面 我想编译并测试我已经完成的那些 但是 Visual Studio 不允许我在非重构页面上运行存在编译错误的网站 如何暂时排除它们而不将它们从项目本身中删除 您可以通过某种配置来做到这一点吗 在 Visu
  • Response.Redirect 并不总是重定向

    我们在一个工作不一致的页面上有一个简单的 Response Redirect IIS 6 0 大多数情况下 它会正确重定向 但我们收到一些用户抱怨 他们没有重定向 而是看到 302 对象移至此处 页面 该页面显示标题信息以及正确的位置 如果
  • 使用 '<%# Eval("item") %>';处理空值并显示 0

    如果数据项是Null我想展示0
  • 如何将Sinon添加到Angular 2测试中?

    我想添加Sinon进行测试 但无法让它运行 我已经安装了 sinon 和 karma sinon 作为 DevDependency 将 sinon 添加到我的 karma 配置文件中的框架中 frameworks jasmine brows
  • ADO.NET 池连接无法重用

    我正在开发一个 ASP NET MVC 应用程序 该应用程序使用 EF 6 x 来处理我的 Azure SDL 数据库 最近 随着负载的增加 应用程序开始进入无法再与 SQL 服务器通信的状态 我可以看到有 100 个到我的数据库的活动连接
  • 如何通过ConfigurationManager找到配置文件位置?

    如何通过ConfigurationManager找到配置文件位置 我在代码中有 ConfigurationManager 类 并且正在调试它 我想知道它指向哪个配置文件 web config 或 app config 等 Configura
  • 角度材质表-表内边框

    I am using Angular material table and I want to set border inside the table Using CSS I was able to set border Normal ca
  • 使用默认行为将模型绑定到接口

    我正在尝试将控制器操作绑定到接口 但仍保持默认的绑定行为 public class CoolClass ISomeInterface public DoSomething get set ISomeInterface public clas
  • IIS 和 ISAPI-WSGI = 非常慢

    我已经使用 IIS 在 IIS 上加载了 2 个 Django 应用程序isapi wsgi http code google com p isapi wsgi 这些都是服务器设置 Windows Server 2003 IIS6 和 SQ
  • WebApi 2 使用属性路由构建嵌套路由。结果同时映射到两个控制器

    我有两个控制器 一个名为 Products 另一个名为 ProductsGroup RoutePrefix api clientUrl products public class ProductsController BaseApiCont
  • OWIN / Katana 未处理的异常全局处理程序?

    在 Katana OWIN 实现中实现全局异常捕获器处理程序的正确方法是什么 在作为 Azure 云服务 辅助角色 运行的自托管 OWIN Katana 实现中 我将此代码放置在中间件中 throw new Exception pooo 然
  • 哈希密码如何解密? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在我的网站中使用盐技术的 SHA1 算法对密码进行哈希处理 有什么办法可以解密密码并恢复原来的密码吗 Hashing不加密 解密 当我们
  • 如何从网站的 .NET 安装程序中排除文件夹?

    我们的网站有一个安装程序 效果很好 我在创建安装程序时排除了 web config 和其他一些文件 但是我似乎无法排除文件夹 这可能吗 我已使用 NET 内置 Web 安装项目创建了安装程序 该项目可在新项目对话框中的 Visual Stu
  • 多线程 Web 应用程序

    我知道有很多情况都是在应用程序中使用多线程的好例子 但是什么时候最好在 net Web 应用程序中使用多线程 Web 应用程序几乎肯定已经由托管环境 IIS 等 实现多线程化 如果您的页面受 CPU 限制 并且想要使用多个核心 那么可以说多
  • 通过 JavaScript 单击按钮/页面提交

    我想了解 asp net 框架如何知道何时单击了按钮 因此一旦收到请求 就会在服务器上触发其单击事件 我需要了解它是如何工作的 因为我想从 JavaScript 触发按钮的服务器单击事件 我能够从 JavaScript 执行页面提交 doc
  • 为什么这个 Web api 控制器不并发?

    我有一个 Web API 控制器 里面有以下方法 public string Tester Thread Sleep 2000 return OK 当我调用它 10 次 使用 Fiddler 时 我预计所有 10 次调用都会在大约 2 秒后
  • ASP.NET 5 中的全局异常处理

    如何将自己的日志记录逻辑附加到 ASP NET 5 应用程序以处理业务逻辑和较低层中引发的每个异常 我尝试用自己的ILoggerProvider实施和loggerfactory AddProvider new LoggerProvider
  • Angular 7 routerLink 指令警告“导航在 Angular 区域外触发”

    我正在努力使用 Angular 框架来让我的应用程序顺利运行 但我无法解决路由问题 我有顶级水平AppComponent and app routing module ts通过我的自定义管理导航SlideMenuComponent 我的简化
  • ASP.NET - 在表示层中显示业务层错误

    目前 在我正在开发的 ASP NET 应用程序中 基本验证 即必填字段 是在表示层中使用验证器和 ValidationSummary 完成的 这对我来说非常有用 因为 ValidationSummary 将显示多个错误消息 假设多个验证器设
  • 代码中的.net Access Forms身份验证“超时”值

    我正在向我的应用程序添加注销过期警报 并希望从我的代码访问我的 web config 表单身份验证 超时 值 我有什么办法可以做到这一点吗 我认为您可以从 FormsAuthentication 静态类方法中读取它 这比直接读取 web c

随机推荐

  • 如何使 jenkins 在 Windows 批处理命令失败时失败?

    我在 jenkins 中使用一些 Windows 批处理命令 其中每个命令都可能失败 为了使 jenkins 作业在每一步都失败 这些批处理命令如下所示 net use m IP ADDRESS Whatever PASSWORD user
  • 在 Android 中直接将捕获的图像上传到 Cloudinary

    我想捕捉一张图片并直接上传到Cloudinary 我如何知道图片的名称以在上传声明中设置它cloudinary uploader upload nameofthepic Cloudinary emptyMap 这是我的代码 public c
  • 正则表达式捕获两个分隔符内单词的每次出现

    假设我有一长串文本 我想捕获每个单词this是在圆括号内提到的 我怎么能这么做呢 以下模式仅匹配第一个this 忽略之后出现的每一个事件 this g 例如 在以下文本上使用上面的模式 Etiam scelerisque nunc ac e
  • 使用 iText5 for .NET 读取 PDF 文件

    我使用 C 作为编程平台iTextSharp阅读 PDF 内容 我使用下面的代码来读取内容 但似乎是每页读取的 public string ReadPdfFile object Filename string strText string
  • 如何在其他类中使用PDO连接?

    我认为我在理解 OOP 的工作原理方面存在问题 我已经更改了它可以工作的代码 但这不是我认为的正确方式 以下场景 不 我不是自己创建用户登录 它实际上只是为了本地开发人员更好地理解 OOP 我有一个database php 文件 class
  • iOS Safari 隐私浏览 localStorage 和 sessionStorage 支持吗?

    我在 StackOverflow 上发现了一些问题 解决了 iOS Safari Private Browsing 的特定功能和sessionStorage and localStorage 但我还没有找到明确的资源来表示 iOS Safa
  • WebRequest 不发送客户端证书

    我正在为 REST API 编写一个客户端 为了对 API 进行身份验证 我必须使用提供给我的证书 这段代码如下 public string GetCustomer int custId X509Certificate2 Cert new
  • fgetcsv 正在吃掉字符串的第一个字母(如果它是变音符号)

    我正在将 Excel 生成的 CSV 文件中的内容导入到 XML 文档中 例如 csv fopen csvfile r words array while pair fgetcsv csv FALSE array push words ar
  • TurboParser 的依赖解析输出是什么意思?

    我一直在尝试使用由生成的依赖解析树CMU 的 TurboParser 它工作完美 但问题是文档太少 我需要精确理解他们的解析器的输出 例如 这句话 我用统计方法解决了这个问题 生成以下输出 1 I PRP PRP 2 SUB 2 solve
  • 如何让 Protractor 不等待 $timeout?

    我正在使用 Protractor 测试我的角度应用程序 用户登录到我的应用程序后 我设置了 timeout 以在一小时内完成某些工作 因此 如果用户在 13 00 登录 timeout 将在 14 00 运行 我不断遇到这些失败 Timed
  • 如何在 C# 中封送集合以传递给本机 (C++) 代码

    我正在从事企业应用程序开发 整个应用程序都是用 C 开发的 除了 UI 是用 C 开发的 现在是时候将 UI 与 C 代码挂钩了 经过详细研究 我选择了 PInvoke 来实现这一点 一切都很成功 我唯一遇到的问题是如何将集合传递给 C 代
  • 以 ip 地址为目标的 Powershell 远程处理

    我在 Server 2008 R2 上成功启用了 PSRemoting 我可以使用主机名作为目标从同一网络内执行远程 pssession 当我尝试从任何计算机 在网络内或从另一个网络 例如通过 VPN 使用 IP 地址作为目标时 我失败了
  • AVPlayer 不会触发playbackBufferEmpty 但也不播放

    我使用 AVPlayer 通过互联网播放音频直播 如果暂停时间超过 1 分钟 我喜欢恢复播放 I call player rate 1 0恢复 但是 如果流暂停超过 1 分钟 则不会再播放 在这种情况下 我需要重新创建 AVPlayerIt
  • Rest API 中 Streamfield 的自定义表示

    我对这个话题有几个疑问 https groups google com forum topic wagtail developers Z4oaCIJXYuI 我正在构建一个无头 Wagtail 具有基于 React 的前端 它调用 Wagt
  • 确定浮点平方根

    如何确定浮点数的平方根 牛顿拉夫森法是个好方法吗 我也没有硬件平方根 我也没有硬件除法 但我已经实现了浮点除法 如果可能的话 我宁愿尽可能减少除法的数量 因为它们非常昂贵 另外 减少迭代总数的初始猜测应该是什么 太感谢了 当您使用 Newt
  • 当 @Context 用于 setter/field/constructor 注入时,HK2 Factory 在 Jersey 过滤器之前调用

    我已经能够根据过滤器注入我的球衣资源如何将对象注入球衣请求上下文中 这使我能够成功注入方法参数 GET public Response getTest Context MyObject myObject this works 但是 对于 s
  • iOS 上的 BLE 连接设备到底是什么?

    The CBCentralManager retrieveConnectedPeripherals方法说它获取 当前连接到系统的外围设备的列表 这里系统的定义有点模糊 这是否意味着我获得了连接到我的应用程序的外围设备列表 或者连接到的外围设
  • 沿着贝塞尔曲线路径的一部分对 UIView 进行动画处理

    我正在尝试沿着贝塞尔曲线路径的一部分对 UIView 进行动画处理 我找到了一种使用以下代码将视图移动到路径的任何部分的方法 let animation CAKeyframeAnimation keyPath position animat
  • JBoss 7:如何更改 WAR 上下文根

    我有一个要部署在 WAR 文件 app war 中的应用程序 部署后可以从 http 8080 应用程序 我希望将其提供为类似的东西 http 8080 秘密 应用程序 我搜索了文档 对于 JBoss es 5 和 6 这似乎可以使用 jb
  • 如何在 IIS 上部署 Angular 和 .NET Core Web API?

    我们在 IIS 上有两个网站 分别用于 angular client 和 web api 托管捆绑包已安装 并且已授予 IUSR 网络 网络服务和Everyone 等用户的权限 每个站点的导航单独工作 即在 API 中 调用http loc