【问题标题】:ASP.NET dynamic compilation with multiple web servers具有多个 Web 服务器的 ASP.NET 动态编译
【发布时间】:2019-04-06 03:36:01
【问题描述】:

基础设施:

  • ASP.NET 4.6.1 网站项目(网络表单)
  • 负载平衡器后面的 2 个 Web 服务器
  • AWS 上的 Redis 作为会话状态提供者

问题:

动态编译发生在每台服务器上,创建具有不同名称的临时 asp.net 文件。有时回发会到达与前一个请求不同的服务器,我得到一个FileNotFoundException - Could not load file or assembly 'PageName.aspx.551d078a.agzxzct4。此文件存在于第一台服务器上,但不存在于第二台服务器上。

问题:

如何将我的 Web 表单网站项目部署到多个 Web 服务器并允许每个请求访问任何服务器?

我试过了:

  • 使用aspnet_compiler 进行预编译。我正在使用VirtualPathProvider,所以预编译已经结束,每个these docs。我在使用 VirtualPathProvider 的页面上得到 404

【问题讨论】:

    标签: c# asp.net iis webforms


    【解决方案1】:

    我在代码隐藏文件中定义了一个enum。我只是把它移到一个单独的类文件中。

    【讨论】:

      【解决方案2】:

      我相信您有一个 ASP.NET 网站(不是 Web 应用程序)项目。在发布网站项目时,您可以打开将页面合并和控制输出到单个程序集的设置,而不是为每个页面创建单独的 dll,这是默认设置。

      在屏幕截图中,在发布对话框设置选项卡上,您可以点击Precompile during publishing option 旁边的配置 链接并设置Advanced Precompile Settings

      【讨论】:

      • 这也是预编译,但我不能这样做,因为我正在使用 VirtualPathProvider,根据上面的文档。
      猜你喜欢
      • 1970-01-01
      • 2016-08-13
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 2019-08-30
      相关资源
      最近更新 更多