我在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 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)
我找到了一个NuGet配置文件\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?)或者还有其他我需要做的事情吗?
谢谢!
我正在ASP.NET Core 1.1中构建Web API.
我有许多不同的数据库(针对不同的系统),这些数据库具有配置项,例如配置,用户和组(总共约25个表)的公共基本模式.我试图通过继承基类来避免为模型的共享部分复制相当广泛的EF配置,如图所示.
但是,这不起作用,因为实体框架(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
我知道如何通过这种方式轻松生成列表:
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的东西很好.
我有一个.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(统一资源标识符)匹配的任何内容.
谁能告诉我:
https://<adfs-sts-server>/<rest-api-host>或<rest-api-resource-uri>?<rest-api-host>或<rest-api-resource-uri>使用ADFS,如果是这样的话?谢谢!彼得
我们在托管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容器内存使用问题,但问题有所不同,目前还没有答案。
我最近升级到VS2012,以解决我的团队面前的问题.我们使用Gallio 3.3作为单元测试框架,并编写了许多可在VS2010中使用的测试.但是,VS2012似乎无法识别它们.
VS2012测试资源管理器窗口显示"构建您的解决方案以发现所有可用的测试".我做了几个干净的构建,系统在VS2012中运行,但没有出现测试.
是否需要配置任何配置,或者我可以在VS2012中运行这些测试的任何方式?
unit-testing gallio test-runner visual-studio visual-studio-2012
如果我正在评估轻量级 EAI 框架的 Apache Camel 替代方案 - 我应该在评估中包括什么?
我在论坛/文档(比如这个)上看到很多 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)
请给我一个如何实例化对该对象的访问的示例?
或者,我还需要哪些额外的进口?
我想开始使用 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)我已尝试过postgres,postgresql并且pgx。
在所有情况下,对 connect 的调用都会失败并出现错误:
sql: unknown …Run Code Online (Sandbox Code Playgroud) asp.net-core ×4
.net-core ×3
docker ×3
ubuntu ×2
adal ×1
adfs ×1
apache-camel ×1
bash ×1
bpmn ×1
c# ×1
camunda ×1
curl ×1
eai ×1
gallio ×1
go ×1
javascript ×1
memory ×1
nuget ×1
pgx ×1
postgresql ×1
sqlx ×1
test-runner ×1
ubuntu-14.04 ×1
unit-testing ×1
zsh ×1