【问题标题】:Handling multiple web projects in ASP.NET Core behind IIS在 IIS 后面处理 ASP.NET Core 中的多个 Web 项目
【发布时间】:2017-11-06 20:50:18
【问题描述】:

我在 ASP.NET Core 2.0 中有一个解决方案,它有几个共享类库项目和两个 Web 项目。 Web 项目是完全独立的,但它们使用相同的共享项目。这两个站点自然需要自己的域名。这应该如何在 IIS 中处理?我找不到有关此方案的任何信息。

为了澄清,解决方案如下所示。两个 Web 项目都使用所有三个共享项目,但两个 Web 项目不相互引用。

  • 共享项目
    • MyApp.Core
    • MyApp.Data
    • MyApp.Services
  • 网络项目
    • MyApp.Web
    • MyApp.Admin

我需要在example.com 运行MyApp.Web,在admin.example.com 运行MyApp.Admin

(注意:我不是在寻找详细的设置说明,the docs 已经很好地涵盖了。我只是在询问运行多个这样的项目的具体配置。)

【问题讨论】:

  • 就这点而言,与您部署 any Web 应用程序的方式没有什么不同。当您的 Web 项目发布时,它们将包含所有依赖项,因此您实际上不会“托管”类库项目之类的东西。这些只是作为 DLL 包含在内。您只需为每个 Web 项目创建一个站点,然后将发布的代码放在那里。然后为每个站点适当地设置绑定(针对您的域)。
  • @ChrisPratt 明白了,这是有道理的。谢谢!

标签: iis asp.net-core


【解决方案1】:

在您的场景中,您应该在 IIS 中创建和部署 两个 网站。

使用dotnet publish 命令发布时,所有必需的依赖项都将复制到输出文件夹(默认配置中的运行时除外,但即使这也可以更改)。

您将只有两个独立网站共享代码和库,但它们不会相互干扰。我有多个类似的部署并且没有遇到任何问题,即使netcoreapp1.1/netcoreapp2.0 并排运行也没有问题。

如果您使用 EntityFramework(或类似的数据库访问),您应该选择将数据库迁移委托给单个项目。

【讨论】:

  • 好的,这很有意义。我想过这种方式,但想验证没有更好的方法。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-05
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
相关资源
最近更新 更多