asp.net-core - 使用 IIS 作为现有 Kestrel 进程的反向代理(无 WAS)
问题描述
考虑这种情况:我有一个长期运行的自主 .NET 5 windows 服务。此 Windows 服务包括一个由 Kestrel 和 ASP.NET Core 提供支持的 API 端点。假设端点配置为监听http://localhost:5002
现在,我想使用 IIS 使该端点在自定义 url 下的服务器外部可用,比方说https://servername:443/myservice
通常,我会使用 IIS 在 IIS 中托管一个 ASP.NET Core 应用程序ASP.NET Core Module
,它会处理所有事情,包括底层进程的生命周期。但在这种情况下,IIS 根本不应该干扰进程,因为它是一个 Windows 服务。
我该怎么做呢?
ASP.NET Core 模块需要配置进程路径,所以我不能使用它。我唯一的其他想法是使用 ARR 和 URL 重写像常规反向代理一样设置 IIS:
<rule name="My Service" stopProcessing="true">
<match url="myservice/(.*)" />
<action type="Rewrite" url="http://localhost:5002/{R:1}" />
</rule>
但我想保留有用的功能,比如身份验证。有没有更好的办法?
解决方案
推荐阅读
- c# - 有没有办法在 for C# 中读取多个文本框
- python - 熊猫按小时分组按天计算
- javascript - 单击按钮时如何运行此功能?
- facebook-graph-api - Facebook Graph API 资源管理器不返回 Facebook 照片 如何解决此问题?
- kentico - 按父节点 guid 获取所有子节点的列表
- php - PHP-单击将所有表值插入数据库并编辑值?
- python - 使用 celery 和 websocket 在 Azure 应用服务上部署 Python Django 应用
- angularjs - 使用 ng-style 的 AngularJs 动态样式
- tensorflow - MultiLabelling 识别图像中多对象检测的子类
- php - 这个学说错误编译是什么意思?