具有自托管或 IIS 选项的 WebAPI
Posted
技术标签:
【中文标题】具有自托管或 IIS 选项的 WebAPI【英文标题】:WebAPI with either self-hosted or IIS option 【发布时间】:2020-11-22 14:32:38 【问题描述】:我有一个当前自托管的 WebAPI。 我还制作了一个 IIS 版本作为一个单独的项目。
我想要做的是,将这两个项目组合成一个解决方案,并根据我可以应用的设置,将其编译为自托管或 IIS。
实现这一目标的最佳方法是什么?
【问题讨论】:
【参考方案1】:在您的 IIS 中仅使用一种托管模型是否有任何顾虑?因为切换托管模型需要更改托管模型属性和应用程序池 CLR 版本。所以我认为在两个不同的子应用程序下托管您的 WebAPI 将是一个解决方案。让他们可以使用不同的托管模式,选择不同的应用程序池。
https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/sites/site/application/
【讨论】:
这似乎只是关于 IIS,如果我没记错的话。我也想使用自托管模型。 进程外也可以作为 dotnet.exe 和 kestrel 的自托管。 IIS 仅用作代理。如果不可接受,则很难切换 dotnet 和 w3wp.exe。【参考方案2】:我最终在同一个解决方案中有两个单独的项目,并且 IIS 项目链接到自托管项目中的文件(模型、控制器、服务等),这似乎工作得很好!
感谢您的回答。
【讨论】:
以上是关于具有自托管或 IIS 选项的 WebAPI的主要内容,如果未能解决你的问题,请参考以下文章
IIS 7 托管模块无法获取 Content-Length 或发送的字节数
WCF 托管在 IIS 中,连接到具有集成安全性的数据库时出现问题
IIS 托管具有 SSL 安全性的 WCF -“HTTP 请求被客户端身份验证方案‘匿名’禁止”错误
如何为托管在 Azure 上的 Web 应用程序和托管在窗口的 IIS 服务器上的 Web 应用程序使用相同的自定义域?
具有个人帐户和托管 ASP.NET Core 的 Blazor WebAssembly 应用程序 - IIS - SQLLocalDB 15.0 找不到指定的资源语言 ID