小编And*_*nov的帖子

如何查看我的响应式扩展查询的作用?

我正在编写一个包含大量运算符的复杂Reactive Extensions查询.我怎么能看到发生了什么?

我提出并回答这个问题,因为它很有用,而且可能是很好用的.

c# debugging system.reactive

17
推荐指数
2
解决办法
2144
查看次数

使用RabbitMQ的.NET核心微服务

我计划将微服务架构用于项目.所选择的技术堆栈.NET CoreDockerRabbitMQ作为一个简单的服务总线,这应该能够部署上Linux.

假设我有一个Payment服务和一个Order服务,我希望每个服务都公开REST端点.因此,我想把这两项服务作为.NET Core Web APIs.

但问题是使用的跨服务通信RabbitMQ.每当我得到一个新的order,我想发布一个事件RabbitMQ,然后在Payment服务中监听该事件,以执行某些操作(数据库更新).但是既然如此Web APIs,我认为听不到我所描述的事件是可能的.(我觉得我可能不得不使用类似控制台应用程序的东西订阅事件.)

考虑到系统的可扩展性和可扩展性,我想找到最可行的方法来实现这一点.

c# asp.net-web-api microservices .net-core rawrabbit

10
推荐指数
1
解决办法
8260
查看次数

使用Arbiter将两个节点的副本集升级到3.6后,Arbiter功能兼容性问题

我已按照此指令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的相同的功能兼容性?

mongodb

6
推荐指数
1
解决办法
425
查看次数

如何将应用程序服务注入到 AuthenticationHandler 中

我有一个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)

c# simple-injector asp.net-core

6
推荐指数
1
解决办法
2227
查看次数

如何在 IE11 Dev Tools 中定位和调试特定文件?

我有一个文件,它是我维护的旧网站的一部分,我需要调试 - 进入等。但我不知道如何做到这一点。该站点需要在 IE 中以兼容模式运行。

当我通过右键单击解决方案下方的“ http://localhost/ ...”项并选择“在浏览器中查看(Internet Explorer)”然后按 F12从 VS(2013)运行站点时,我在调试器上看到标签已设置为默认页面的文件(登录后看到的“主”页面),但从那里我看不到如何打开另一个文件 - 我需要调试的文件。

在文件夹图标下方有一些显然可供选择的文件:

在此处输入图片说明

...但不是我需要的。如果我在搜索框中输入它的名称,我会得到“未找到结果”。它位于 pages 文件夹下方,但显示的文件夹也是如此。是什么让它们与众不同?为什么我可以选择那些不受欢迎的页面,却不能选择我唯一关心的页面?

javascript vb.net asp.net internet-explorer-11 ie11-developer-tools

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

如何修复:异步方法的返回类型必须为 void、Task 或 Task&lt;T&gt; [AppName]

我正在使用 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 中: …

asp.net-mvc repository-pattern async-await

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