我们有一个 CD/CI Azure DevOps 构建管道,今天突然停止工作。它已在我们的管道中成功调用数月。
失败的组件是 "npm install" ,它失败并在详细日志中显示以下错误:
我在谷歌周围搜索并建议运行:npm cache clear --force before npm install。我试过了,但同样的错误仍然存在。
然后我更早地在日志中查找并看到以下内容:
我尝试浏览到https://github.com/sass/node-sass/releases/download/v4.12.0/win32-x64-83_binding.node并收到消息“找不到页面”。
我不知道这是否与 npm 失败的根本原因有关,但它似乎支持我的假设,即截至撰写本文时(2020 年 11 月 17 日),“npm install”存在问题。
使用 Azure DevOps for CD/CI 的其他人有同样的问题吗?我查看 NPM 事件页面并看到此问题https://status.npmjs.org/incidents/r1tlhscrw3r6但它应该已修复。
我正在使用第三方控件(ComponentOne),并且我会间歇地得到这个典型的红色X盒,例如这个典型的图像显示.起初我以为我有一个GDI泄漏,所以在做了一些腿部工作后,我确认我的GDI数字在绘制控件时很好.

在谷歌搜索后我发现这种错误发生在OnPaint()事件上,因此即使我在调用Render的控件时尝试并捕获它,它也不会捕获它.
所以我的下一步是在我的代码中使用以下覆盖.
protected override void OnPaint(PaintEventArgs e)
{
try
{
base.OnPaint(e);
}
catch (Exception ex)
{
this.Invalidate(); //attempt to redraw the control
XmSam.Log(ex);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为应该这样做,但我不能一直重现这个问题,所以我还没能完全测试上面的代码.我的问题是,如果我渲染我的控件并且它有异常,那么此代码将尝试重绘控件.这会陷入无限循环并冻结我的UI吗?或者你会认为导致异常的任何东西都会消失,并且在第二次控制重绘时它会变好吗?
我有这个 SQL 语句来创建一个表,用于存储 JSON 字符串数据和在该 JSON 字符串中找到的事件时间。
CREATE TABLE [dbo].[EventLog]
(
[EventID] INT NOT NULL IDENTITY(1,1),
[EventTime] AS CAST(JSON_VALUE(RawEvent, '$.EventTime') AS DATETIME ) PERSISTED,
[RawEvent] NVARCHAR(MAX) NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此命令时,出现以下错误,我假设 SQL Server 不知道该值是否适合 DATETIME?有没有办法定义这个列?
消息 4936,级别 16,状态 1,第 26 行 表“Event”中的计算列“EventTime”无法持久,因为该列是不确定的。
对不起,我无法在SQLFiddle上证明这一点,因为当我问这个问题时它似乎已经失效了.
我有下表
Col1 Col2
==== ====
1 A
1 A
1 B
2 C
2 C
Run Code Online (Sandbox Code Playgroud)
如果我通过查询运行组
SELECT COL1,COL2
GROUPBY COL1,COL2
Run Code Online (Sandbox Code Playgroud)
我会的
Col1 Col2
==== ====
1 A
1 B
2 C
Run Code Online (Sandbox Code Playgroud)
我的问题是,当第2列中有多个不同的值时,如何编写查询来检测第1列值?本质上,该查询的返回应该给出"1",因为这是行在Col1中具有相同值的位置,而Col2在多个数据行的跨度上具有不同的值.