小编Ily*_*dik的帖子

组合根是否需要单元测试?

我试图找到答案,但似乎没有直接讨论过很多.我有一个我的应用程序的组合根,我创建一个DI容器并在那里注册所有内容,然后解决所有依赖项所需的顶级类.由于这一切都在内部发生 - 因此很难对组合根进行单元测试.你可以做虚拟方法,受保护的字段等等,但我不是为了能够进行单元测试而引入这些东西的忠实粉丝.其他类没有大问题,因为它们都使用构造函数注入.所以问题是 - 根本测试组合根是否有意义?它确实有一些额外的逻辑,但并不多,在大多数情况下,在应用程序启动期间会弹出任何故障.我有一些代码:

public void Initialize(/*Some configuration parameters here*/)
    {
        m_Container = new UnityContainer();

        /*Regestering dependencies*/

        m_Distributor = m_Container.Resolve<ISimpleFeedMessageDistributor>();
    }

    public void Start()
    {
        if (m_Distributor == null)
        {
            throw new ApplicationException("Initialize should be called before start");
        }

        m_Distributor.Start();
    }

    public void Close()
    {
        if (m_Distributor != null)
        {
            m_Distributor.Close();
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection compositionroot

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

无法在Web服务器上启动调试.远程服务器返回错误:(404)Not Found.在Visual Studio中启动调试时出错

我已经将项目设置为在IIS上运行了一段时间,当我按F5时它确实连接没有问题.但最近这停止了工作,当我按F5 /按下时我确实收到了这个错误Debug->Start debugging:

无法在Web服务器上启动调试.远程服务器返回错误:(404)Not Found.

在此输入图像描述

这是我的设置:

在此输入图像描述

我不确定发生了什么,可能是一些VS更新或Windows更新,但我试图谷歌无处不在,没有任何工作.如前所述,附加到流程工作正常,但这种更简单的方法停止了这一操作.

更新:

尝试过Process Monitor来找出出错的地方,看起来w3wp尝试访问路径MyProjectFolder\debugattach.aspx,结果是"NAME NOT FOUND".不知道这是否是问题的根源.

.net asp.net iis debugging visual-studio-2017

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

如果将IEnumerable与async / await一起使用(从带有Dapper的SQL Server中流式传输数据)一起使用,会发生什么情况?

我正在使用Dapper从SQL Server中的一个非常大的数据集中流式传输数据。返回IEnumerable和调用可以正常工作Query(),但是当我切换到时QueryAsync(),该程序似乎尝试从SQL Server而非流式读取所有数据。

根据这个问题,它应该可以正常工作buffered: false,我正在做,但是这个问题什么也没说async/await

现在根据这个问题,要完成我想做的事情并不容易QueryAsync()

我是否正确理解在切换上下文时会枚举可枚举的对象async/await

另一个问题是,当新的C#8异步流可用时,是否可以做到这一点?

c# sql-server async-await dapper c#-8.0

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

ExponentialBackoffRetry 如何与 Azure 函数的 ServiceBus 触发器配合使用?

我想在我的Azure函数中实现一个非常简单的行为:如果在处理过程中出现异常,我想推迟下一次重试一段时间。据我所知,在服务总线中没有直接的可能性,例如(除非创建一条新消息),但服务总线触发器有可能ExponentialBackoffRetry

我还没有找到任何有关服务总线连接如何工作的文档。即函数执行失败后消息会发生什么。

一种可能的方法是将消息保留在功能基础设施中,并在我认为的持续时间内不断更新锁定。关于我想知道的一些更实际的问题:

  1. 我可以使用退避重试多长时间(例如,如果我想重试长达 7 天,例如这会起作用吗?)
  2. 当主机重置/重新启动/缩放时会发生什么,我是否会由于实现细节而失去此退避,或者它仍然以某种方式维护?

azure azureservicebus azure-functions azure-functions-runtime

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

dnxcore50与dnx451的性能比较?(CoreClr与.net Framework)

我试图找到一些关于这两个目标的性能数据进行比较,但没有成功.我对在Windows上运行的asp.net5 Web应用程序感兴趣(例如,或者azure web app).在性能方面是否有任何显着差异,或者从目标角度来看,目标大致相等?

coreclr dnx asp.net-core

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

是否可以直接在Azure WebApps中的Kestrel上运行ASP.NET 5站点?

我已经检查过,当我将ASP.NET5部署到azure web应用程序时,在Web响应中服务器是IIS,所以我想IIS平台处理程序用于将其重定向到Kestrel.所以我想知道是否可以直接在Kestrel上运行,以及有什么好处/缺点(可能无论是否在Azure中).我想它会更快一些,因为IIS将从pipline中排除,但我认为它不应该是太多的开销......

azure-web-sites dnx kestrel-http-server asp.net-core

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

在ASP.NET 5的Visual Studio Online构建期间未定义或导入预定义类型"System.Void"

当我尝试在Visual Studio Online中构建项目时出现此错误:

前端\ src \前端\ Startup.cs(65,49):错误CS0518:未定义或导入预定义类型'System.Void'C:\ a\1\s\Frontend\src\Frontend\Startup.cs(65 ,49):DNXCore,Version = v5.0错误CS0518:未定义或导入预定义类型'System.Void'[C:\ a\1\s\Frontend\src\Frontend\Frontend.xproj]

似乎错误发生在我引用另一个库(包类库)的地方.

PS我在这里有一些关于此的讨论:在Visual Studio Team Services中构建和部署(到Azure)ASP.NET 5的简单方法,但毕竟没有答案,所以我仍然无法构建它...

Web project.json:

"dependencies": {
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
    "Web.Common": "1.0.0-*"
},

"frameworks": {
    "dnx451": { },
    "dnxcore50": { }
},
Run Code Online (Sandbox Code Playgroud)

图书馆project.json

"frameworks": {
    "dnx451": { },
    "dnxcore50": {
        "dependencies": {
            "Microsoft.CSharp": "4.0.1-beta-23516",
            "System.Collections": "4.0.11-beta-23516",
            "System.Linq": "4.0.1-beta-23516",
            "System.Runtime": "4.0.21-beta-23516",
            "System.Threading": "4.0.11-beta-23516" …
Run Code Online (Sandbox Code Playgroud)

msbuild tfsbuild azure-web-sites azure-devops asp.net-core

8
推荐指数
5
解决办法
2万
查看次数

如何使用webpack 2和打字稿和角度2摇树?

我已经设置了带有角度的webpack 2,而且大多数它似乎都有效.它似乎并没有tree-shaking,因为我有一个几乎什么也没做的应用程序,而且vendor.js仍然是800+ KB.

似乎关于如何打开树摇晃的信息很少,但据我所知,它为ES6模块自动打开,但不适用于ES5.是这样吗?

最重要的是:如何使用webpack2对treecript/angular2应用树摇动?

typescript webpack tree-shaking angular

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

为什么 CallerClassName(或 CallerTypeName 或类似)属性不存在?

有一些属性(例如CallerMemberNameC# 中的属性)非常方便,特别是对于日志记录目的。每个人(或者至少是我)似乎都缺乏的是CallerClassName,我们可以轻松地记录这样的内容,而无需显式传递this或带有类名的字符串:

MyClass.MyMethod 执行期间发生异常

是否有任何限制可以让我们更容易了解方法而不是类,或者它只是我们可以要求添加的缺失功能?

.net c# attributes

8
推荐指数
0
解决办法
1780
查看次数

为什么在 Kuberntes 部署/容器定义中需要端口/容器端口?

当我在 kubernetes 中定义例如部署时,有一个包含容器列表的部分,每个容器都包含一组端口,例如:

apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      containers:
      - name: my-nginx
        image: nginx
        ports:
        - containerPort: 80
Run Code Online (Sandbox Code Playgroud)

现在这里的文档明确表示它不会影响连接:

要从容器公开的端口列表。在此处公开端口可为系统提供有关容器使用的网络连接的附加信息,但主要是信息性的。在此处不指定端口不会阻止该端口被公开。任何侦听容器内默认“0.0.0.0”地址的端口都可以从网络访问。无法更新。

现在看来它并没有真正影响任何东西,只是信息性的,但这究竟意味着什么,它在哪里使用?

我发现它的一个用途是,如果端口定义了一个名称,则可以通过该名称从服务中引用它。

是它还是这个规范还有其他用途?

kubernetes kubernetes-deployment kubernetes-container kubernetes-service kubernetes-networking

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