具有自托管或 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

IIS托管WCF服务:集成测试和代码覆盖