我正在编写一个包含大量运算符的复杂Reactive Extensions查询.我怎么能看到发生了什么?
我提出并回答这个问题,因为它很有用,而且可能是很好用的.
我计划将微服务架构用于项目.所选择的技术堆栈.NET Core与Docker和RabbitMQ作为一个简单的服务总线,这应该能够部署上Linux.
假设我有一个Payment服务和一个Order服务,我希望每个服务都公开REST端点.因此,我想把这两项服务作为.NET Core Web APIs.
但问题是使用的跨服务通信RabbitMQ.每当我得到一个新的order,我想发布一个事件RabbitMQ,然后在Payment服务中监听该事件,以执行某些操作(数据库更新).但是既然如此Web APIs,我认为听不到我所描述的事件是可能的.(我觉得我可能不得不使用类似控制台应用程序的东西订阅事件.)
考虑到系统的可扩展性和可扩展性,我想找到最可行的方法来实现这一点.
我已按照此指令https://docs.mongodb.com/manual/release-notes/3.6-upgrade-replica-set/将MongoDB副本集升级到3.6 .当我执行命令
db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
Run Code Online (Sandbox Code Playgroud)
主要和辅助更新功能兼容3.6,但Arbiter功能兼容性仍然是3.4.
为什么它仍然是3.4以及如何使Arbiter具有与Primary作为Secondary的相同的功能兼容性?
我有一个AuthenticationHandler<>依赖于应用程序服务的自定义实现。有没有办法解决AuthenticationHandler简单注入器的依赖关系?或者也许是跨线注册,以便可以从 解析应用程序服务IServiceCollection?
为简单起见,示例实现如下所示:
public class AuthHandler : AuthenticationHandler<AuthenticationSchemeOptions>
{
private readonly ITokenDecryptor tokenDecryptor;
public SecurityTokenAuthHandler(ITokenDecryptor tokenDecryptor,
IOptionsMonitor<AuthenticationSchemeOptions> options,
ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock) :
base(options, logger, encoder, clock) =>
this.tokenDecryptor = tokenDecryptor;
protected override async Task<AuthenticateResult> HandleAuthenticateAsync() =>
return tokenDecryptor.Decrypt(this);
}
...
services.AddAuthentication("Scheme")
.AddScheme<AuthenticationSchemeOptions, AuthHandler>("Scheme", options => { });
Run Code Online (Sandbox Code Playgroud)
目前的解决方案是手动跨线应用服务,不太方便:
services.AddTransient(provider => container.GetInstance<ITokenDecryptor>());
Run Code Online (Sandbox Code Playgroud) 我有一个文件,它是我维护的旧网站的一部分,我需要调试 - 进入等。但我不知道如何做到这一点。该站点需要在 IE 中以兼容模式运行。
当我通过右键单击解决方案下方的“ http://localhost/ ...”项并选择“在浏览器中查看(Internet Explorer)”然后按 F12从 VS(2013)运行站点时,我在调试器上看到标签已设置为默认页面的文件(登录后看到的“主”页面),但从那里我看不到如何打开另一个文件 - 我需要调试的文件。
在文件夹图标下方有一些显然可供选择的文件:
...但不是我需要的。如果我在搜索框中输入它的名称,我会得到“未找到结果”。它位于 pages 文件夹下方,但显示的文件夹也是如此。是什么让它们与众不同?为什么我可以选择那些不受欢迎的页面,却不能选择我唯一关心的页面?
javascript vb.net asp.net internet-explorer-11 ie11-developer-tools
我正在使用 VS Code 并遵循 ASP.NET Core/EF Core 教程,并承认我不太清楚 async、await 和 Task 是如何工作的(嗯,我知道前两个,但不知道第三个。)我第一次实现一个存储库,以及与之配套的 UnitofWork 类和接口。这是工作单元类:
using System.Threading.Tasks;
namespace vega.Persistence
{
public class UnitOfWork : IUnitOfWork
{
private readonly VegaDbContext context;
public UnitOfWork(VegaDbContext context)
{
this.context = context;
}
public async Task CompleteAsync()
{
await context.SaveChangesAsync();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我将鼠标悬停在 CompleteAsync 操作名称上时,除了 VS-Code 智能感知显示的主题行错误之外,我还得到以下信息:
'UnitOfWork.CompleteAsync()': not all code paths return a value [AppName]
Run Code Online (Sandbox Code Playgroud)
其他可能相关的片段:
using System;
using System.Threading.Tasks;
namespace vega.Persistence
{
public interface IUnitOfWork
{
Task CompleteAsync();
}
}
Run Code Online (Sandbox Code Playgroud)
在我的 Startup.cs 中: …
c# ×3
.net-core ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
async-await ×1
debugging ×1
javascript ×1
mongodb ×1
rawrabbit ×1
vb.net ×1