gpt4 book ai didi

c# - 是否可以创建一个可以同时作为独立应用程序和 IIS 内部托管的 OWIN 应用程序?

转载 作者:太空宇宙 更新时间:2023-11-03 13:15:43 25 4
gpt4 key购买 nike

我想创建一个具有两种不同部署可能性的 OWIN/WebAPI 应用程序:

  1. 作为独立应用(OWIN 自托管),因为它可能是工具包的一部分。
  2. 作为托管在 IIS 服务器内的 Web 应用程序。

打个比方 - 想想 Jenkins,它既可以在 Tomcat 中运行,也可以独立运行。

我有一些问题:

  1. 我需要两个不同的启动类吗?
  2. 如何构建项目以生成两个不同的程序集(一个 EXE 和一个 DLL)
  3. 如何通知 IIS 应用程序代码在 EXE 中

我来自 Java 背景,所有这些都可以通过适度的麻烦实现,而且我在使用 Microsoft 技术方面非常新手,因此任何关于如何实现这一点的指示都会有所帮助。

最佳答案

创建一个 .NET 程序集项目并将所有必需的 NuGet 引用添加到该项目,例如 ASP.NET Web API 核心 (Microsoft.AspNet.WebApi.Core) 等。在这里您将拥有 ApiControllers 等。当然,根据您的设计,您可能会在自己的项目中拥有域(业务规则等)和数据访问权限。到目前为止,您拥有的项目不会有任何托管问题。

然后,您创建一个空的 ASP.NET 项目并引用早期的 Web API 项目。这样您就可以在 IIS (ASP.NET) 中托管 Web API。您还可以创建一个控制台应用程序并添加 OWIN 托管以及更早的 Web API 项目所需的 NuGet 包。这是针对使用 Katana 托管 API 的自托管。

顺便说一句,在这样的安排中,不要使用任何托管特定代码,例如 HttpContext.Current。始终使用框架功能。

附言。如果您在使用 Web API 定位 Controller 时遇到任何问题,请在网络上搜索以在外部程序集中定位 Controller 。

https://www.google.com/search?q=+asp.net+web+api+locating+controllers+in+external+assemblies&oq=+asp.net+web+api+locating+controllers+in+external+assemblies

关于c# - 是否可以创建一个可以同时作为独立应用程序和 IIS 内部托管的 OWIN 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26314170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com