小编Dej*_*jan的帖子

如何使用TPL数据流库指定无序执行块?

我想设置一个TransformBlock并行处理它的项目.因此,我设置ExecutionDataflowBlockOptions.MaxDegreeOfParallelism为> 1.我不关心消息的顺序,但文档说:

如果指定的最大并行度大于1,则会同时处理多个消息,因此,可能无法按接收顺序处理消息.但是,从块输出消息的顺序将被正确排序.

"正确排序"是否意味着如果队列中有一条消息需要很长的处理时间,则在处理这一条消息之前不会输出更多消息?

如果是这样,我如何指定一个TransformBlock不关心排序的执行块(例如a )?或者我必须在消费端指定我不关心订购?

c# task-parallel-library tpl-dataflow

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

可以/应该使用 SignalR Backplane 来构建分布式缓存吗?

我们的 Web 应用程序使用内存缓存(应用程序数据缓存)来提高吞吐量,这样就不必为每个请求从数据库 (SQL Server) 加载频繁查询的数据。有可能,它将部署在网络农场中,因此我们必须解决必须同步所有节点缓存的经典问题。所以我们需要的是一个分布式缓存。

现成的解决方案是 NCache 和 REDIS(可能还有更多)。但是,由于我们已经在使用 SignalR Backplane 将数据集的更改传达给 Windows 服务(和浏览器客户端),我想知道它是否可以用于实现分布式缓存。

这样做,我们将(或多或少)重新使用我们现有的数据集已更改消息,但在 Web 应用程序本身中订阅它们以使其缓存无效。好处是我们不必引入新的库/技术。

我想我最大的问题是:这有意义吗?并且,SignalR 背板是否足够可靠以确保不会丢失导致缓存过时的事件?或者这是架构上的误用?

ncache web-farm distributed-caching signalr signalr-backplane

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

如何在Meteor中创建具有经过验证的电子邮件地址的用户?

在我的服务器夹具中,我正在使用该Accounts.createUser函数为一些测试用户填充数据库.现在,我正在试图弄清楚如何将已创建用户的电子邮件标记为已验证.

我试图verified直接设置标志,但它不起作用:

Meteor.users.findOne(userId).emails[0].verified = true
Run Code Online (Sandbox Code Playgroud)

meteor

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

如何卸载使用RunAndCollect创建的动态程序集?

为了优化性能,我使用以下代码为每个用户请求动态创建新类型:

var dynamicAssemblyName = new AssemblyName(assemblyName);
AssemblyBuilder dynamicAssembly = AssemblyBuilder.DefineDynamicAssembly(dynamicAssemblyName, AssemblyBuilderAccess.RunAndCollect);
ModuleBuilder moduleBuilder = dynamicAssembly.DefineDynamicModule(assemblyName);
Run Code Online (Sandbox Code Playgroud)

然后,我用它moduleBuilder来发出类型。

这将为每个请求创建一个新的动态程序集。因此,在应用程序的生命周期中,我可能会遇到许多这样的问题。因此,我担心资源将被释放。因此,我正在使用AssemblyBuilderAccess.RunAndCollect来实现这一点。msdn说:

可以卸载动态程序集并回收其内存,但要遵循动态类型生成的可收集程序集中描述的限制。

我只是没有找到如何卸载动态程序集,不幸的是,到“动态类型生成的可收集程序集”主题的链接已断开。

该页面的不再维护的版本似乎表明,一旦发出的类型超出范围,则卸载将自动发生。我可以相信吗?

.net c# memory-leaks reflection.emit

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

PersonalDataAttribute 有什么用?

我只是偶然发现 ASP.NET Core Identity 框架提供了PersonalData 属性。文档只是说:

用于表示某物被视为个人数据。

好的。这是什么意思?它对身份框架的工作方式或作用有什么影响吗?或者它纯粹是装饰性的,以便我可以对某些对象进行一些反思并记录我的代码?

c# asp.net-core asp.net-core-identity

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

无法在HubConfiguration中将DependencyResolver传递给MapSignalR

我有一个MVC 4应用程序,我正在使用SignalR和依赖注入框架.因此,我需要实现自定义DependencyResolver.为了连线,我正在使用

        var resolver = new CustomSignalRDependencyResolver(...);
        GlobalHost.DependencyResolver = resolver;
        app.MapSignalR();
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作.但是,如果我使用这样的HubConfiguration对象:

        var resolver = new CustomSignalRDependencyResolver(...);
        app.MapSignalR(new HubConfiguration(
            {
                Resolver = resolver
            });
Run Code Online (Sandbox Code Playgroud)

一切似乎都有效(对象正确连线,没有任何错误或警告)但远程方法不再被调用.有人可以解释第一种和第二种方法之间的区别吗?

signalr

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

HandleBars .Net如果比较

我将Handlebars .NET用于邮件模板,因此我在服务器端宽度ASP.NET MVC上生成模板。我需要这样的比较。但这行不通吗?我能做什么?

//Product.ProdType is a enum property 

{{#if (Product.ProdType=='BlaBlaBla')}}
<p>This is a test</p>
{{/if}}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc mustache handlebars.js handlebars.net

3
推荐指数
2
解决办法
6019
查看次数

在 NuGet 中包含控制台应用程序的最佳实践

我正在开发一个开源库,它主要由一个针对 .NET Standard 2.0 的类库项目组成。最重要的是,我还实现了一个控制台应用程序,它是该库的 CLI。控制台项目(由于历史原因)仅针对 .NET Framework 4.6.2。

现在我想知道为了让这个控制台应用程序可供社区使用,最佳实践是什么。从最广泛的层面来看,我看到两种可能性:

  1. 将控制台应用程序作为单独的 NuGet 发送。
  2. 将控制台应用程序与类库放在同一个 NuGet 中,因为它只是一个次要的附加组件,并不能证明自己的包是合理的。

从历史上看,我一直使用第二种方法,但考虑到类库可以在多目标场景中使用,我不再确定。也许将控制台应用程序分离在自己的 NuGet 中会更干净,这样它对完整 .NET 框架的依赖就很清楚。

不管怎样,我想知道控制台exe在NuGet的文件结构中属于哪里。从历史上看,我一直把它放在下面,但此页面tools\net462有关该文件夹的评论让我不安全:tools

可通过程序包管理器控制台访问 Powershell 脚本和程序

我不一定想象有人使用包管理器控制台中的 CLI。相反,它会在某个 shell 的某个地方用作独立的 exe。

c# console-application multi-targeting nuget .net-standard

2
推荐指数
1
解决办法
6435
查看次数

如何获取服务器端 Blazor 应用程序的基本 URL

我有一个服务器端 blazor 应用程序,我需要知道它的基本网址(例如https://localhost:1234https://my-host.com/appname)。

在传统的ASP.NET Web应用程序,我可以检查Request控制器的性能以及从中检索信息(有SchemeHost以及PathBase为该)。但由于这是一个服务器端运行的 Blazor 应用程序,因此没有Request对象(至少在我的理解中,除非在服务Index.cshtml.

我如何才能知道我的应用程序已部署到哪个 URL 并在哪个 URL 上运行?

理想情况下,我在启动时就已经有了这些信息,以便我可以相应地配置我的服务。

blazor blazor-server-side

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

N'some字符串在这里是'ANSI SQL吗?

我们知道,为了将字符串文字限定为Unicode,我们需要N在Transact-SQL中为它添加前缀.我的问题是,这是否是ANSI SQL的任何标准的一部分.其他数据库平台会理解这个吗?

更新:

我使用Mig#的实际实验表明,为了使用Unicode文字:

t-sql sql-server ansi-sql ansi-sql-92

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