我听说过“上游服务”和“下游服务”这两个一般术语,但我遇到了一些关于微服务架构的文章,他们使用了这些术语,但是我无法理解上游和下游服务是什么在基于微服务的架构中会是?有人有一个简短的解释吗?
我已经知道上游服务是那些不依赖于任何其他服务而下游服务依赖于上游服务的服务,例如前端将是后端的下游服务,因为它依赖于它。
我正在 .Net Core 中开发微服务。
我有一个用例,其中我将查询传递给函数,然后进行一些计算。查询是根据我通过的过滤器形成的。下面是示例代码
var totalCount = await query.CountAsync();
var limitExceeded = limit.HasValue && totalCount > limit.Value;
var pagedResults = new List<R>();
// Don't execute the query if the limit has been exceeded
if (!limitExceeded)
{
//Do some work here
}
Run Code Online (Sandbox Code Playgroud)
我面临的问题是有一个名为“filename”的过滤器,当我通过该过滤器时,生成的底层查询如下所示
DECLARE @__fileName_1 nvarchar(1024) = N'%cmder.zip%';
SELECT [d].[Id], [d].[CreatedByUserId], [d].[DateCreated], [d].[DateModified], [d].[DatePurged], [d].[Deleted], [d].[DocumentKey], [d].[DocumentStatusId], [d].[DocumentTypeId], [d].[FileDesc], [d].[FileExt], [d].[FileLength], [d].[FileLengthTypeId], [d].[FileName], [d].[FileSize], [d].[FullPath], [d].[Hidden], [d].[ModifiedByUserId], [d].[PurgedByUserId], [d].[RepositoryId], [d].[SHA1], [d].[TransactionId], [d].[UploadedDate], [c].[Id], [c].[CaseId], [c].[DateModified], [c].[Deleted], [c].[DocumentId], [c].[ModifiedByUserId], [c].[PublishToId], [c].[TransactionId], [c0].[Id], [c0].[CaseCoordinatorId], [c0].[CaseName], [c0].[CaseNo], …Run Code Online (Sandbox Code Playgroud) Startup.cs 有一些方法可用于配置 swagger 以添加文件上传功能,现在我可以在 .NET Framework 中的哪个文件中执行相同的功能?
我从公用事业服务获取 azure 广告访问令牌,我想使用一些标准令牌验证参数来验证它,其中包括发行者、受众和发行者签名密钥。现在我有发行者和受众,但我没有发行者签名钥匙。
但是我已经使用 azure ad b2c 的 jwks_uri 端点提取了关键信息,它给了我一个 json 输出
{
"keys": [
{
"kid": "X5eXk4xyojNFum1kl2Ytv8dlNP4......",
"nbf": 1493763266,
"use": "sig",
"kty": "RSA",
"e": "AQAB",
"n": "tVKUtcx_n9rt5afY_2WFNvU6PlFMggCatsZ3l4RjKxH0jgdLq6CScb0P3ZGXYbPzXvmmL...."
}
]
}
Run Code Online (Sandbox Code Playgroud)
我尝试仅使用 n 值作为键,但出现令牌验证失败的异常。现在我想知道如何获取发行者签名密钥来验证令牌。n+e (string concatenation ?) 是一个解决方案吗?我看到了一个类似的问题Azure AD B2C - 令牌验证不起作用,但它没有回答我的问题,因此想知道在 .net core 中执行它的确切方法。
我看过很多类似的问题,但没有一个能给我解决方案,所以我想是否有人可以帮助我解决这个问题。我有一个实体层次结构,因为客户有多个 ClientRateDeals,然后我尝试仅获取那些具有全部通过某些条件的客户费率交易列表的客户。这是我生成错误的 LINQ 查询:
var query = _context.Client.Where(c=>c.Disabled==false)
.GroupJoin(_context.ClientRateDeal.Where(crd=>crd.Disabled==false),
c => c.Id,
crd => crd.ClientId,
(c, crd) => new
{
c,
crd = crd.Where(cr => cr.DateEnd == null || cr.DateEnd > DateTime.Today)
})
.Where(res => res.crd.Count() == 0)
.Select(cl => cl.c).AsNoTracking().ToList();
Run Code Online (Sandbox Code Playgroud)
正如您在结果选择器参数中看到的,我保留了该条件,然后在结果选择器上保留了 where 子句,以仅获取那些客户端速率交易计数为 0 的内容。但是,由于某种原因,我收到了 LINQ 无法执行的异常被翻译。谁能帮我这个 ?
c# ×3
.net-core ×2
linq ×2
api-gateway ×1
asp.net-mvc ×1
azure ×1
azure-ad-b2c ×1
jwt ×1
linq-to-sql ×1
rsa ×1
sql-server ×1
swagger ×1
swagger-ui ×1