【问题标题】:Host multiple sites of the application located in one folder托管位于一个文件夹中的应用程序的多个站点
【发布时间】:2010-11-20 19:57:00
【问题描述】:

我想知道为不同域托管 Web 应用程序的最佳方式。我想要实现的是:

  1. 拥有 Web 应用程序的单个文件夹以便于维护。
  2. 能够覆盖每个站点的 Web.Config 的某些部分(仅限 ATM 连接字符串,但可能更多)。
  3. 将日志文件存储在文件系统上,而不会干扰网站。
  4. 将其他文件(由应用程序生成)存储在文件系统上,而不会在站点之间产生干扰。

蛮力解决方案是为每个网站创建目录并独立更改每个网站的所有配置。这确实保证了这些站点是独立的。

但是为了更容易维护(真的更容易吗?)我希望将应用程序放在一个文件夹中(所以我部署到一个地方,升级一次等)。
但不确定在这种情况下如何实现我提到的目标。

我想听听一些建议,也许有一个优雅的解决方案。

谢谢,
德米特里。

【问题讨论】:

    标签: asp.net iis configuration hosting web-config


    【解决方案1】:

    如果您对多个站点使用相同的文件,您将遇到文件锁定问题。我认为通过分离网站来管理网站更容易,因为拥有一个共享的 web.config 可能会混淆设置。例如,将正确的跟踪/记录指向正确的位置。

    【讨论】:

    • 可以锁定哪些文件? ASP.NET 将文件编译到每个网站的单独临时目录中。是的,共享配置确实会混淆设置,这就是为什么我问什么是优雅的解决方案。
    • 当您使用预编译的应用程序(更快的应用程序启动速度,并隐藏 aspx 源代码)时,ASP .NET 不会重新编译。如果您不重新编译,使用您提到的实现策略,您仍然有多个程序集副本(存储在 iis 缓存中),它只是 asp .net 管理它们的位置。
    • 我不预编译应用程序。你能指出我显示存储在 IIS 缓存中的 .NET 程序集的文章吗?我认为与 IIS 缓存无关。你的答案是对同一个应用程序有不同的文件夹并且不共享任何东西吗?
    • 根据这篇文章,缓存存储在“临时 ASP.NET 文件文件夹”中:informit.com/articles/article.aspx?p=1073232 在大多数情况下,我认为每个服务器上的同一个应用程序都有不同的文件夹。希望你觉得这很有帮助。 :)
    • 临时 ASP.NET 文件是 ASP.NET 缓存,但不是 IIS。这篇文章没有关于在 IIS 中兑现程序集的内容。所以我仍然不明白什么**程序集**可以因为所谓的“IIS Cache”而被锁定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 2014-10-15
    • 2011-05-02
    • 2019-04-06
    相关资源
    最近更新 更多