问题标签 [self-contained]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4615 浏览

asp.net-core - ASP.NET Core v3.1 应用程序真的可以自包含吗?

我有一台服务器,目前在 IIS 中托管许多 .net core v2 服务。

我不得不做一项新服务。通常我只会使用服务器安装的任何运行时,但我想,“. Net Core 可以部署自包含的应用程序,所以我可以同时使用 v2 服务和 v3 服务。

我担心我错了。

当我运行我的自包含应用程序时,它会给出以下错误:

处理程序“aspNetCore”的模块列表中有一个错误模块“AspNetCoreModuleV2”。

当我查找此内容时,我发现我需要安装托管捆绑包。当您访问拥有它的 .net 核心站点时,它显示为 .Net Core 的推荐安装方法(在 IIS 机器上)。

这就是我开始担心的地方。我以为我不必在我的服务器上安装 .net core 3。我以为我可以运行一个自包含的应用程序。

如果不测试所有以 .Net Core v2 为目标的现有服务在 .Net Core v3 运行时上是否正常工作,我就无法安装 .Net Core v3。

所以,看起来我将不得不将我的服务降级到 v2(哎呀,我讨厌工作倒退。)

但在我这样做之前,我想我会问:
有没有在 IIS 上托管一个只有 .Net Core v2 运行时的 Asp.Net Core v3 Web API 服务?

0 投票
1 回答
209 浏览

visual-studio - Visual Studio for Mac 上的自包含 Linux 64 包

在 Visual Studio 2019 for Windows 中使用 .NET Core 应用程序时,我可以选择将应用程序发布为 Windows、Linux 或 Mac 包、依赖于框架或自包含。我一定遗漏了一些明显的东西,但是我如何在 Visual Studio for Mac 中做同样的事情呢?它只是发布内容而不要求任何选项。

我尝试手动编辑发布配置文件以包含最后两行:

但它们似乎没有效果。

0 投票
1 回答
381 浏览

sql-server - 完全包含的数据库和 Azure SQL 单一数据库有什么区别

当一个数据库完全包含时,它的所有对象都在数据库边界内。它也在数据库级别管理连接。包含的数据库

我有几个问题:

  • 如果我在 Azure SQL Single DB 中托管包含的数据库,那么 Azure SQL 单一数据库和包含的数据库作为 Azure SQL 单一数据库有什么区别?

  • 为什么我们有一个单独的产品作为 Azure SQL Single Db,当包含的数据库也类似于它时?

  • 将数据库作为包含数据库是否有助于更轻松地迁移到 Azure SQL 单一数据库?

0 投票
1 回答
188 浏览

c# - C# 字典递归

我正在 c# 中搜索一个构造,其中字典包含要计数的字典n。我想将字典列表放入其中并建立某种索引。

我想调用它,就像dic[key][key2][key3]值是对象或字典或包含更多字典的字典一样。

我认为弹性可以提供类似的东西,但我们的解决方案是一个独立的客户端应用程序。

0 投票
1 回答
438 浏览

c# - .NET 4.8 没有为 Linux 创建自包含文件

我有一个小 .NET Core 控制台应用程序,我想制作一个独立的文件。不仅如此,我还想创建一个可以在CentOS上运行的独立文件。

我遇到的问题是当我运行时dotnet publish -r linux-x64 -c release --self-contained true我得到多个文件,并且这些文件似乎只为 Windows 配置。我也尝试删除<OutputType>Exe</OutputType>. 这确保发布时没有任何 EXE 文件文件,但我仍然得到多个文件,我不确定它们是否甚至可以在 CentOS 上运行,因为它们只是 .dll 文件。我的目标框架设置为<TargetFramework>net4.8</TargetFramework>.

这是我得到的输出的一些视觉效果:

<OutputType>Exe</OutputType>我的 .csproj 中设置:

在此处输入图像描述

<OutputType>Exe</OutputType>删除:

在此处输入图像描述

0 投票
0 回答
375 浏览

.net-core - 为什么 .Net Core 的 PublishSingleFile 进行自提取而不是资源嵌入程序集?

对我来说,合并 .Net 二进制文件以便我只剩下一个可执行文件始终是一个既有趣又重要的功能。根据我的阅读,有以下三种方法:

  1. 合并

    • 真正合并程序集。相当于创建一个 .csproj 并拉入所有源代码。
  2. 福迪·科斯图拉

    • 将程序集分开,但仅将它们的文件作为资源包含并相应地弯曲分辨率。
  3. .Net Core 3+ PublishSingleFile / Warp

    • 据我了解,这些方法是相似的。在第一次执行时将文件提取到临时目录,然后正常运行它们。

虽然主题非常相关,有时确实重叠,但我不打算混淆单个文件、独立部署和修剪——我主要考虑的是单个文件部分。

我认为这三种方法中的任何一种都有其自身的优点和缺点,没有一种是“最佳”方式。

  1. 合并

    • + 似乎是“合并”最自然的选择
    • + 不需要运行时加载,如果一切都在那里并且工作正常,那就是它;一旦图像在内存中,我们就完成了
    • - 每次加载所有内容可能会导致启动性能下降,这与桌面应用程序相关
    • - 内部结构发生了很大变化,程序集名称发生了变化,可能库内部结构更多地涉及应用程序代码等;我猜这可能会导致难以调试的错误,在最坏的情况下会出现在生产中。它只是改变了开发人员可能认为理所当然的事情(即他们的程序集的名称)。
    • - 可能不是概念性的,但不支持 .Net Core => dealbreaker
  2. 福迪·科斯图拉

    • + 为依赖项启用压缩
    • + 更少的内部变化,可能导致更少的不可预见的情况
    • + 可能需要操作系统来加载完整的图像,但不需要 CLR 来一次加载库,因此可能会提高启动性能
    • - 每次都需要解压缩依赖;可能是 CPU 方面的性能损失,可能是 IO 方面的性能优势
  3. 自提取

    • + 也压缩了
    • + 一旦代码被提取并运行,唯一的区别就是它的位置。因此,lib 开发人员甚至仍然可以在磁盘等上找到他们的程序集,我猜这使得运行时差异最小。
    • - 第一次启动可能需要一些明显的时间,并且是相当 IO 密集型的,一种安装。
    • + 后续运行的行为类似于非单文件部署,与其他两个相比具有各自的(劣势)优势。
    • - 带有一些不平凡的问题。何时更新提取的文件?谁删除了提取文件的旧版本?如果磁盘已满/...怎么办?
    • - 执行不再无副作用。
    • - 所需磁盘空间的两倍以上。

在我个人显然不是详尽且非科学的经验中,(3)有时有一些粗糙的边缘并表现出奇怪的行为,而(2)在我一直使用它的几年里工作得非常好(尽管比较框架与核心)。但这可能是由于(3)的实施非常新或我的误解。

我发布这个问题的目的是(a)更好地理解这一点,(b)理解微软为什么选择(3)。所以,会很棒

  • 如果我错过了三者之间的差异以指出它们(请随时编辑问题以将内容保存在一个地方)。
  • 如果我做出错误的假设来指出它们。
  • 如果总体上有更多选择,或者我对其中一个概念有误以指出它们
  • 如果有关于推理的内容,为什么微软选择(3)作为更好的方式(这可能会加深我对利弊的理解)来为我指明正确的方向。

虽然我知道很难与框架功能竞争,但我有点难过Costura 处于维护模式,因为我认为它比框架方法具有优势,使第二个选项成为可行的选择。因此,我问这个问题的原因之一是了解(3)是否有任何严重的优势,而不是(2)我忽略了。

0 投票
0 回答
151 浏览

c# - 自重启自包含单文件 dotnet 核心控制台应用程序

有谁知道一种方法,或者是否有可能让一个自包含的单文件 dotnet core 3.1 控制台应用程序自行重启?我之前使用下面的代码在其他控制台应用程序中完成了此操作并且它有效,但是它不适用于我的单文件应用程序。

相反,我得到以下异常

我怀疑这是由于运行时包含在目录中而窗口不知道使用它。如果我将应用程序发布为非单个文件应用程序,则使用 exe 重新启动就可以正常工作。但是我更喜欢使用自包含的单个文件,因为它使人们更容易传输单个 exe。

我已经查看了 Application.Restart 方法,但是我需要使用 runas 动词,因为我的应用程序正在处理 kerberos 令牌并且必须在用户的上下文中运行并传递它提示用户。

对此的任何帮助将不胜感激,我已经为此旋转轮胎大约一天了。我发现了很多关于如何创建单个文件应用程序的文章,但没有找到如何让一个文件自行重新启动它的文章。

0 投票
1 回答
33 浏览

architecture - 报告整合组成

我有一个基于几个自包含系统(微服务,如果你愿意)的架构,每个系统都拥有一组给定的数据。

我们希望通过集成所有系统来实现一个报告数据库(具有近乎实时的更新),让他们将他们的数据“投影”到集中的报告数据存储中。

我想赋予每个系统以松散耦合的方式填充其报告数据模型的责任。事实上,我想避免实现一个集中的“报告系统”,它可能可以监听来自各种系统的 MQ 消息并通过 API 从它们那里获取数据(基本上充当协调器)。

我想做相反的事情,意思是......各种系统应该有可能将他们的“数据报告投影仪”组件插入这个报告系统。

这样,我可以避免想要投影数据的各种系统与报告系统本身(反之亦然)之间的依赖关系,并将报告投影的逻辑保留在拥有系统本身中。

您是否知道我可以使用任何现有的工具来实现这种用于报告目的的集成层?

您能否建议在这种情况下可以遵循的一些架构模式或方法?

我们用于后端的主要技术是 .NET。

谢谢。

0 投票
1 回答
915 浏览

azure - Service Fabric 服务部署疑难解答

我们有一个 ServiceFabric 服务,它运行最新的 .NET Core 3.1。我们将其发布和部署为独立的 x64 应用程序。在最近的更新之后,我们无法再部署它。ServiceFabric 提供的信息很少。这就是我们所看到的:

它尝试了几次然后放弃了。通过深入研究 SF 事件,我也发现了这一点:

使用本地 Service Fabric 群集时,一切都部署得很好。

有人知道谁可以从部署过程中获得更多信息吗?更多日志。一些线索将帮助我们部署到底出了什么问题。

0 投票
1 回答
80 浏览

c# - 用于硒测试的独立铬

我想知道是否有任何方法可以在 Chrome 上进行测试而无需实际安装它(例如在没有Chrome 的机器上运行)。我尝试使用PhantomJS,但它并没有真正起作用。换句话说,我想在我的应用程序中嵌入Chrome,以便 Webdriver 控制嵌入的 Chrome。我不想使用Selenium Grid。

目标

在完全独立(独立或嵌入式)的Chrome 上运行测试。