小编Pet*_*ter的帖子

如何在docker镜像中添加CA根证书?

我在Ubuntu 14.04上的Docker 1.13.1容器中运行ASP.NET Core 1.1 Web API.

当代码尝试从HTTPS服务器检索某些数据时,我收到此证书身份验证错误:

 An error occurred while sending the request. ---> System.Net.Http.CurlException: Peer certificate cannot be authenticated with given CA certificates
   at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error)
   at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult)
Run Code Online (Sandbox Code Playgroud)

HTTPS服务器是内部的,我们的公司CA签署了证书,因此我知道我可能需要注册内部CA.

到目前为止我发现的关于这个错误的所有内容和Docker谈到让docker本身运行,连接到repos等.我的Docker工作正常,Web API在容器外的Ubuntu服务器上运行没有问题.

1)我是否需要在docker镜像中添加CA根证书?

2)如果是这样,我该怎么办?

3)如果没有,我该如何解决这个问题?

ubuntu curl ssl-certificate docker

21
推荐指数
4
解决办法
3万
查看次数

如何在Ubuntu 14.04上使用dotnet CLI注册新的NuGet包源?

我在Ubuntu 14.04上运行.NET Core 1.1.0,目标是在Ubuntu上的Docker中托管我的Web API.我想在Ubuntu上构建我的包,但是一些NuGet引用托管在内部NuGet存储库(Artifactory)上.添加包源后,这在Windows上的VS2015中工作正常,但是当我运行时:

dotnet restore
Run Code Online (Sandbox Code Playgroud)

在Ubuntu上,公共NuGet repo下载的软件包下载很好,但Artifactory上的软件包失败:

error: Unable to resolve 'Mercury.BaseModel (>= 1.1.0)' for '.NETCoreApp,Version=v1.1'.
Run Code Online (Sandbox Code Playgroud)

我找到了一个N​​uGet配置文件\home\<user>\.nuget\NuGet\NuGet.Config并添加了Artifactory存储库,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="Artifactory-DEV" value="https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local" protocolVersion="3"/>
  </packageSources>
</configuration>
Run Code Online (Sandbox Code Playgroud)

但我仍然得到同样的错误.

安装.NET Core SDK之后NuGet本身不起作用,我正在使用dotnet restore如上所述 - 我是否必须为dotnet CLI编写类似的配置(必须使用NuGet?)或者还有其他我需要做的事情吗?

谢谢!

nuget docker ubuntu-14.04 .net-core asp.net-core

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

如何在EF7/.NET Core中为多个数据库实现DbContext继承

我正在ASP.NET Core 1.1中构建Web API.

我有许多不同的数据库(针对不同的系统),这些数据库具有配置项,例如配置,用户和组(总共约25个表)的公共基本模式.我试图通过继承基类来避免为模型的共享部分复制相当广泛的EF配置,如图所示.

我的DbContext继承树

但是,这不起作用,因为实体框架(EF)要求DbContextOptions<DerivedRepository>作为参数传递给构造函数,其中DerivedRepository必须匹配调用构造函数的存储库的类型.然后必须通过DbContext调用将参数传递给基数:base(param).

因此,当(例如)InvestContext初始化时DbContextOptions<InvestContext>,它调用base(DbContextOptions<InvestContext>)并且EF抛出错误,因为对ConfigurationContext构造函数的调用正在接收类型的参数DbContextOptions<InvestContext>而不是所需的类型DbContextOptions<ConfigurationContext>.由于DbContext上的选项字段定义为

    private readonly DbContextOptions _options;
Run Code Online (Sandbox Code Playgroud)

我无法看到解决这个问题的方法.

定义共享模型一次并多次使用它的最佳方法是什么?我想我可以创建一个辅助函数并从每个派生的上下文中调用它,但它不像继承那样干净或透明.

entity-framework entity-framework-core .net-core asp.net-core

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

如何以特定顺序生成包含扩展的列表?

我知道如何通过这种方式轻松生成列表:

echo {a,b,c,d}_{0..3}

这会给:

a_0 a_1 a_2 a_3 b_0 b_1 b_2 b_3 c_0 c_1 c_2 c_3 d_0 d_1 d_2 d_3

但是如何生成相同的列表,但第二个大括号的优先级更高,以获得这个?:

a_0 b_0 c_0 d_0 a_1 b_1 c_1 d_1 a_2 b_2 c_2 d_2 a_3 b_3 c_3 d_3

任何技巧,比如从末尾或字符n中排序都可以,只要它适合一行.我也在使用zsh,但使用bash的东西很好.

bash zsh

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

如何设置有效的内部部署ADFS URI?

我有一个.NET 4.6.2 Windows客户端应用程序,它需要从我们的内部部署ADFS服务器获取身份验证令牌,并使用它来调用ASP.NET核心REST API.它的客户端名称,id(GUID)和重定向URI已在ADFS中注册.我使用最新的ADAL(v3.13)库来促进身份验证.我试图获得一个令牌,如ADAL示例代码中所示,如下所示:

AuthenticationContext authenticationContext = new AuthenticationContext("https://<adfs-sts-server>/<rest-api-host>", false);
var result = authenticationContext.AcquireTokenAsync(<rest-api-resource-uri>, clientId, redirectUri, new PlatformParameters(PromptBehavior.Auto));
Run Code Online (Sandbox Code Playgroud)

AcquireTokenAsync调用返回错误,说:基于浏览器的身份验证对话框无法完成.原因:服务器未找到与请求的URI(统一资源标识符)匹配的任何内容.

谁能告诉我:

  1. 是"请求的URI"在错误的refered到https://<adfs-sts-server>/<rest-api-host><rest-api-resource-uri>
  2. 我是否需要以某种方式注册<rest-api-host><rest-api-resource-uri>使用ADFS,如果是这样的话?
  3. 我需要的任何其他信息才能使其发挥作用?

谢谢!彼得

c# adfs adal asp.net-core

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

如何减少.NET Core Docker容器的内存使用量?

我们在托管Web API的Docker / Ubuntu上运行.NET Core 1.1容器。容器基于microsoft/aspnetcore:1.1.2为Ubuntu x64平台发布的二进制文件,并在构建映像时将其复制到副本中,变得非常简单。

目前,我们的Web API也非常简单,最多只有少数几个控制器从SQL Server中提取数据。它们没有大量的缓存或任何异常的东西,但是在运行时,每个都使用500-900 Mb的RAM。这不是由于内存泄漏引起的-每个容器的内存使用情况随着时间的推移是稳定的,在使用过程中上下波动10-15Mb。

此级别的RAM使用应该完全没有必要-如何减少它?

我已经审查了Docker容器内存使用问题,但问题有所不同,目前还没有答案。

memory ubuntu docker .net-core asp.net-core

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

如何配置VS2012测试运行器来接收和运行Gallio单元测试?

我最近升级到VS2012,以解决我的团队面前的问题.我们使用Gallio 3.3作为单元测试框架,并编写了许多可在VS2010中使用的测试.但是,VS2012似乎无法识别它们.

VS2012测试资源管理器窗口显示"构建您的解决方案以发现所有可用的测试".我做了几个干净的构建,系统在VS2012中运行,但没有出现测试.

是否需要配置任何配置,或者我可以在VS2012中运行这些测试的任何方式?

unit-testing gallio test-runner visual-studio visual-studio-2012

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

Apache Camel 的替代品是什么

如果我正在评估轻量级 EAI 框架的 Apache Camel 替代方案 - 我应该在评估中包括什么?

  • 开源或闭源都可以
  • 它不必是 Java,但它必须在 Windows 上运行
  • MS 替代品还可以
  • 我不想要一个完整的 ESB
  • 它应该支持文件、SOAP Web 服务和 REST 端点。OData 支持将是一个奖励。

eai apache-camel

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

如何在 Camunda JavaScript 服务任务中实例化“执行”对象?

我在论坛/文档(比如这个)上看到很多 JavaScript 参考和代码片段,其中该execution对象用于一系列有用的事情,例如:

execution.createIncident(String incidentType, String configuration);
execution.resolveIncident(String incidentId);
execution.setVariable("name", value);
Run Code Online (Sandbox Code Playgroud)

但是,我在任何地方都没有看到如何实例化该execution对象的示例,当我尝试使用它时,我收到如下错误:

The process could not be started. :
Cannot instantiate process definition Finswitch_Tx:14:42ef803b-67df-11e8-a127-0242ac11001b: Unable to 
evaluate script: ReferenceError: "execution" is not defined in <eval> at line number 7
Run Code Online (Sandbox Code Playgroud)

请给我一个如何实例化对该对象的访问的示例?

javascript bpmn camunda

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

我应该使用什么驱动程序名称来使用 pgx 驱动程序将 Go sqlx 连接到 Postgres?

或者,我还需要哪些额外的进口?

我想开始使用 Postgres 作为我正在进行的一些开发的主要 DBMS,我的研究表明这pgx是目前选择的数据库驱动程序。我已经设置了一个连接包:

package database

import (
    "fmt"
    _ "github.com/jackc/pgx/v5"
    "net/url"

    "github.com/jmoiron/sqlx"
    log "github.com/sirupsen/logrus"
)

func PgConnect(username, password, host, app string) *sqlx.DB {
    s := fmt.Sprintf("postgres://%s:%s@%s?app+name=%s&sslmode=allow", url.QueryEscape(username), url.QueryEscape(password), host, app)
    db, err := sqlx.Connect("postgres", s)
    if err != nil {
        log.Panicf("failed to connect to sqlserver://%s:%s@%s err: %s", username, "xxxxxxxxxxxx", host, err)
    }

    return db
}
Run Code Online (Sandbox Code Playgroud)

URL 的计算结果为:

postgres://user:password@database-host:5432/database-name?app+name=app-name&sslmode=allow
Run Code Online (Sandbox Code Playgroud)

我也尝试过postgresql这里的前缀,因为我在互联网上的地方都看到过这两个前缀。

对于呼叫中的驱动程序名称sqlx.Connect("postgres", s)我已尝试过postgrespostgresql并且pgx

在所有情况下,对 connect 的调用都会失败并出现错误:

sql: unknown …
Run Code Online (Sandbox Code Playgroud)

postgresql go sqlx pgx

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