- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
将项目从 ASP.NET Core 3.0 升级到 ASP.NET Core 3.1 后,我的应用程序停止在 Azure App Services 上运行——但仅在使用Azure DevOps Pipelines中的持续部署发布时。 ( Similar to another question ,如果我直接从 Visual Studio 发布,它会继续工作。)
具体来说,管道仍然能够使用 Azure App Service Deploy (AzureRmWebAppDeployment
) 任务进行发布,但无法在 Azure App Service 环境中加载500.32 exception :
500.31 ANCM Failed to Find Native Dependencies
Common solutions to this issue:
The specified version of Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found.
现在,对于未安装 .NET 运行时的情况,我非常熟悉此错误,这在 Microsoft 发布新版本后立即很常见。在这些情况下,典型的解决方案是:
--self-contained
版本,或发布到在这种情况下,我知道 .NET Core 3.1.2 运行时在应用服务环境中可用,并且另外确认这些解决方案不能解决问题。这表明存在不同的潜在错误。
Other threads suggest looking for those details in the Windows Event Viewer (and here as well)。由于这是一项 Azure 应用服务,因此我查看了 应用服务日志。但是,这些仅包括上述错误的副本,没有任何进一步的细节。此外,Azure Application Insights 中没有记录异常,这表明此错误是在 Application Insights 加载之前发生的。
鉴于此,我的问题是:如何解决 Azure 应用服务上的 500.31 错误?
最佳答案
应用服务日志与Windows事件查看器不同;它们将捕获异常,并且对于排除您没有看到的错误很有用,但它们至少不会为 ANCM 错误提供额外信息。相反,您需要确保启用详细错误,以确保您也收到由 ANCM 检测到的特定错误。
在 ASP.NET Core 应用程序中,可以使用 Startup
类中的 UseDeveloperExceptionPage()
中间件启用详细错误。在标准 ASP.NET Core 模板中,可以根据环境变量有条件地切换它们:
public class Startup {
…
public static void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
if (env.IsDevelopment()) {
app.UseDeveloperExceptionPage();
}
}
}
在这种情况下,您只需将应用服务配置的 ASPNETCORE_ENVIRONMENT
配置变量更改为 Development
。
Note: Doing this exposes details about all exceptions and can lead to potential security vulnerabilities. This should only be enabled for otherwise-secured development environments, or as a temporary troubleshooting technique on a public-facing server.
就我而言,这暴露了以下内容:
500.31 ANCM Failed to Find Native Dependencies
Common solutions to this issue:
The specified version of Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found.
Specific error detected by ANCM:
Error: An assembly specified in the application dependencies manifest (Project.deps.json) was not found: package: 'Microsoft.Data.SqlClient', version: '1.0.19269.1' path: 'runtimes/win/lib/netcoreapp2.1/Microsoft.Data.SqlClient.dll'
现在,您的应用程序正在寻找的确切底层依赖项可能会有所不同。但关键点是,即使它能够加载正确的 .NET 运行时(在我的例子中是 .NET Core 3.1),它仍在尝试从 .NET Core 2.1 运行时加载旧依赖项,从而触发此错误。但是,除非您首先启用 UseDeveloperExceptionPage()
,否则您将无法确定 Azure App Service 的依赖关系。
实际的解决方案显然取决于您收到的确切错误。在这种情况下,提供对最新 Microsoft.Data.SqlClient
NuGet 包的显式 引用可以解决问题,并允许 Azure 应用服务正确显示站点。
也就是说,我仍然不清楚为什么这在直接从 Visual Studio 发布时有效,但在通过 Azure DevOps 管道发布时失败。我知道在使用 dotnet publish
的各种标志时包含的依赖项可能存在细微差别,所以我的假设是 Visual Studio 和 Azure App Service Deploy 的方式之间存在差异 任务调用dotnet publish
.
关于asp.net-core - Azure 应用服务上的 500.31 ANCM 故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60839745/
我有一个名为“members”的数据库表。分配给成员的是一个职位。 职位 来自部门。我有 Departments,然后是那些中的 Sub-Departments 和 Sub-Departments 中
我正在尝试为 Solr 搜索应用过滤器标记 Tagging_and_excluding_Filters . 挑战在于同时应用多个标记(对于单个页面上的多个选择选项)。例如 q=mainquery&fq
我知道这个问题已经被问过很多次了,我已经尝试了所有建议,并阅读了有关不同选择器等的所有内容,但没有任何对我有用 给出以下 HTML 片段: link
是否有直接的 LINQ 语法来查找集合 B 中不存在的集合 A 的成员?在 SQL 我会写这个 SELECT A.* FROM A LEFT JOIN B ON A.ID = B.ID WHERE B
我试图排除并在现有xpath中包括以下xpath,但不太确定如何做到这一点 //exclude -> //*[@id="ires"]/ol/li[6]/div/a[1]/img //include
我有 30 个站点,我需要在其中 24 个站点上回显某些内容。我怎样才能排除其他人?该代码不起作用,因为我认为它的逻辑是假的:) $currentsite = get_bloginfo('wpurl'
我需要对目标文件夹进行检查,并检查文件是否来自今天,并且超过5kb 下面的命令根据使用今天的日期存在的文件来提供bool值,但是我还要添加-gt5kb之类的排除项 我尝试使用-Exlcude,但不确定
我编入索引的Elasticsearch文档包含许多字段。我一直在使用match_all查询来获取结果。我想从match_all中排除一些字段,这可能吗? 最佳答案 在Elasticsearch中,您可
我正在为我的 DAO 编写一些测试,因为很多测试使用保存到我的数据库中的测试对象,所以我使用注释 @Before 和 @Before 创建了 setup() 和teardown() 方法@After
我编写了一个程序来解决以下问题: Implement a diffusion limited aggregation simulation on a toroid plane where seeds
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
很多时候我必须运行这个查询: select * from users where name is not null and name != '' 有没有更好的方法来做到这一点。我需要更多的性能,任何建
如果检测到某个操作系统,是否有一种简单的方法可以排除某些代码? 我设计了一个运行良好的网站(它是一个 sidescroller),当使用滚轮(向上/向下)时,它会左右滚动。但是,如果您使用的是 Mac
我应该如何排除“IN”子句中的值? $Graduates = "45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,6
很明显,如果一个 Mysql 表的全文索引包含一个出现在 50% 的数据行中的关键字,该关键字将被匹配查询忽略 因此,如果我有一个包含 50 个条目的全文索引“content”的表其中 27 个条目在
我有下面的循环。 我需要提取所有不包含字母 p 的名称 (lskey),但我的尝试不起作用。 for(var i = 0; i "); } } 如果有人能回答,我将不胜感激。 最佳答案 如此接
我正在尝试查找 FTP 服务器上根目录的总大小。但是,我无权访问根目录中的其中一个目录。 我想用这个函数对根目录的大小求和: size = 0 for filename in ftp.nlst("."
我有以下正则表达式来匹配 html 链接: 有点效果。除了不是真的。因为它在 编辑: 这将使它只抓取引号而不是 之后的所有内容 最佳答案 我认为您的正则表达式没有按照您的意愿行事。 这会非贪婪地捕
我在提出异常方面遇到困难,例如: import csv o = open('/home/foo/dummy.csv', 'r') # Empty file! reader = csv.reader(o
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我是一名优秀的程序员,十分优秀!