小编Cri*_*rsi的帖子

C# .NET 6 - 当在 K8S pod 中运行时,读取一条(大)记录的简单 SQL 查询需要很长时间,在 IIS 中运行时则瞬间完成

我在 SQL Server 中有一个简单的表:

CREATE TABLE [dbo].[MyTable]
(
    [Ticket] [uniqueidentifier] NOT NULL,
    [UserID] [int] NOT NULL,
    [Progress] [int] NOT NULL,
    [Created] [datetime2](7) NOT NULL,
    [KeepRes] [bit] NOT NULL,
    [Result] [nvarchar](max) NULL,
    [ResultFetched] [datetime2](7) NULL,
    [CorrelationID] [varchar](100) NULL,

    CONSTRAINT [PK_MyTable] 
        PRIMARY KEY CLUSTERED ([Ticket] ASC)
                    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, 
                          IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, 
                          ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
)
Run Code Online (Sandbox Code Playgroud)

请注意,该表的行可能有一Result列非常大(300 MB 左右)。我使用简单的主键
从 .Net6/C# 中的应用程序查询此表。select

我使用实体框架核心:

public void QueryTable(Guid ticket)
{
    using (MyDBContext …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework-core kubernetes .net-6.0

12
推荐指数
0
解决办法
369
查看次数

用于纯C中RSA实现的库

我在C中寻找一个非常简单的RSA实现.我需要将它放在DSP中,所以我想使用非常简单和直接的东西.尽管如此,我只发现只有少量数字(int或long)的例子,而我需要至少以1024位实现RSA,所以我还要处理大数字.

你能指点我的一些图书馆或例子吗?

c signal-processing rsa

9
推荐指数
1
解决办法
1万
查看次数

将CVS存储库导入GIT结果中,导致一些与时间戳相关的误导性行为

我曾经git cvsimport将我的CVS存储库导入到全新的GIT存储库中.

不幸的是,在某些情况下,某些提交报告的顺序错误.

例如,我有两个CVS版本的文件,rev1.1在11.39am和rev1.2在11.42am; 在GIT中,我可以看到11.42am的提交(内容等于rev1.2)和随后的提交在11.45am(内容等于rev1.1).

我知道cvsimport手册页中陈述的已知问题

如果cvs存储库中的提交时间戳不够稳定,无法用于订购提交,则更改可能会以错误的顺序显示.

但我无法理解足够稳定的意思.

而且,如果有人能为我提供解决这个问题的方法,那就太好了.

非常感谢你

cghersi

git timestamp cvsimport

9
推荐指数
1
解决办法
70
查看次数

UWP:未指定的错误 - 来自 HRESULT 的异常:0x80004005

我正在用 C# 开发一个 UWP 应用程序,并且我附加了一个未处理异常的处理程序,它向我们发送未处理的异常,以便我们可以诊断它们)。

我收到大量

System.Exception - 未指定的错误(来自 HRESULT 的异常:0x80004005)

没有任何堆栈跟踪或其他附加信息。

这在本地调试中从未发生过,但仅在实际用户的生产中发生过,从未抱怨过这个问题,所以我想这似乎是一个可能不会影响用户的无声错误。

无论如何,我对让这个问题悬而未决感到有点不安。

我怎样才能找到这个问题的罪魁祸首?

有没有人遇到过这个问题?

谢谢!

c# exception unhandled-exception uwp

8
推荐指数
1
解决办法
526
查看次数

有时,EF Core 需要花费大量时间来执行 SELECT 查询

我使用 EF Core 6 与 SQL Server DB。有时,SELECT 查询的执行时间会超过 30 秒,并且会超时。

如果我执行 EF Core 生成的完全相同的 SQL(使用完全相同的参数,在同一个数据库上,仅在超时后几秒),则需要不到一秒的时间。

整个期间,数据库服务器的 CPU 利用率始终低于 30%。

在SQL Server Management Studio上运行SQL查询,我可以看到执行计划是理想的(即它使用索引等)。

所以我担心可能存在一些锁定来阻止数据库返回查询结果。

有没有办法指定 EF Core,例如查询的隔离级别,甚至某些并发/锁定策略?

在我的特定场景中,脏数据或不完全最新的读取是可以的,因为我们有适当的程序来在后续一轮查询中检索干净的数据。

谢谢

c# sql-server concurrency locking entity-framework-core

7
推荐指数
1
解决办法
1926
查看次数

返回客户端时,CXF WS调度失败

我正在尝试使用javax.xml.ws.Provider开发一个使用CXF的远程调度程序,如下所述:http://cxf.apache.org/docs/jax-ws-dispatch-api.html.我有一个配置了WSAddressing,SOAP12_HTTP_BINDING和以下WSS4J配置的CXF客户端:

客户端WSS4J IN拦截器:

inProps.put("action",                  "Timestamp Signature Encrypt");      
inProps.put("passwordType",            "PasswordText");
    ...
Run Code Online (Sandbox Code Playgroud)

客户端WSS4J OUT拦截器:

protected static final String WSU_NS =
    "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";                                           
protected static final String SOAP12_NS = "http://www.w3.org/2003/05/soap-envelope";
protected static final String SOAP11_NS = "http://schemas.xmlsoap.org/soap/envelope";
protected static final String WSA_NS =  "http://www.w3.org/2005/08/addressing";
protected static final String WSSE_NS="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";

String userForPswCallback = ...
Map<String, Object> props = new HashMap<String, Object>();
props.put("action",                 "UsernameToken Timestamp Signature Encrypt");
props.put("passwordType",           "PasswordText");
...
props.put("encryptionParts",        "{Content}{"+SOAP12_NS+"}Body;{Element}{"+WSSE_NS+"}UsernameToken");
props.put("signatureKeyIdentifier", "DirectReference");
props.put("signatureParts",         "{Element}{"+SOAP12_NS+"}Body;" +
                "{Element}{"+WSSE_NS+"}UsernameToken;" +
                "{Element}{"+WSA_NS+"}Action;" +
                "{Element}{"+WSA_NS+"}MessageID;" …
Run Code Online (Sandbox Code Playgroud)

java cxf

5
推荐指数
1
解决办法
3766
查看次数

将 OAuth2 代码交换为访问令牌时,Azure AD 返回非 JWT 令牌

我的租户上有一个 Azure AD 应用程序,该应用程序配置为接受多个租户和个人帐户。

我按照此处说明的过程检索 AccessToken: https: //learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow

当我从 Microsoft 网页收到应用程序中的“代码”时,我将其交换为调用端点“https://login.microsoftonline.com/common/oauth2/v2.0/token”的访问令牌。

无论登录的用户是工作帐户还是个人帐户,此处的行为都会有所不同。

通过工作帐户,我收到一个普通的 JWT 令牌,每个人都很高兴:我可以解码令牌并读取声明。

使用个人帐户,我收到另一个令牌,它不是 JWT 令牌,我不知道如何:

  1. 验证此令牌
  2. 从用户那里读取一些信息(具体来说,用户的电子邮件)

您能帮我了解如何执行这两个操作吗?

注意:我在这里看到了答案:Microsoft 作为个人帐户的 OAuth2 提供商不会颁发 JWT 访问令牌,但我的情况略有不同,因为我不想使用此令牌访问 MS Graph,我只需要检索电子邮件用户的。

谢谢!

盖尔西

azure access-token azure-active-directory microsoft-identity-platform personal-access-token

5
推荐指数
1
解决办法
1305
查看次数

使用 MiniProfiler 显示所有计时

我正在使用 MiniProfiler 检查 API 的性能。

我已经使用 MiniProfiler 语句检测了我的 API 代码,并在 API 方法结束时调用MiniProfiler.RenderPlainText();打印性能日志并将其保存在我的数据库中。

不幸的是,这个打印输出似乎被中间“剪切”了并且不完整。

对于 24M 字符以及 350k 字符的打印输出来说都是如此,因此这似乎不是某种阈值的问题。

您知道如何获取完整日志吗?

另一种(次优)策略可能是配置 MiniProfiler 跳过琐碎的计时(例如 < 0.2 毫秒)并仅打印相关的计时...

请告诉我这个问题是否有解决方案。

谢谢你!

盖尔西

c# performance miniprofiler .net-core .net-6.0

5
推荐指数
0
解决办法
73
查看次数

PostMapRequestHandler事件和AcquireRequestState事件之间的延迟

我在主题事件之间遇到了一个奇怪的延迟(每次调用多于或少于500毫秒).

我在Global.asax 中的处理程序中放置了日志和分析Application_PostMapRequestHandler(),Application_AcquireRequestState()并发现了这样的问题.

这种缓慢的原因是什么?

c#-4.0 asp.net-mvc-4

4
推荐指数
1
解决办法
781
查看次数

如何在 UWP 应用中通过 log4net 配置日志记录

我有一个使用我的一些库的 UWP 应用程序。此类库使用 log4net 进行日志记录,并在多个项目中共享,而不仅仅是 UWP。

我想通过 XML 配置文件中的常用 confi 部分配置 log4net,但我找不到在 UWP 项目中执行此操作的方法,因为没有 app.config 文件。

我应该把下面的部分放在哪里?

<log4net>
    <appender name="Console" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date - %message%newline" />
        </layout>
    </appender>

    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
        <file value="log\mylog.log" />
        <appendToFile value="true" />
        <maximumFileSize value="2000KB" />
        <maxSizeRollBackups value="20" />

        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date - %message%newline" />
        </layout>
    </appender>

    <root>
        <level value="INFO" />
        <appender-ref ref="Console" />
        <appender-ref ref="RollingFile" />
    </root>
</log4net>
Run Code Online (Sandbox Code Playgroud)

谢谢!

c# logging log4net log4net-configuration uwp

3
推荐指数
1
解决办法
1176
查看次数