小编Ant*_*nen的帖子

使用Ecto的原始SQL

我是Elixir和Phoenix Framework的新世界.我正在尝试关注TheFireHoseProject教程,但是在使用Ecto查询原始SQL时遇到问题.该教程说这应该工作:

defmodule Queries do
def random do
  query = Ecto.Adapters.Postgres.query(
    Repo,
    "SELECT id, saying, author from quotes ORDER BY RANDOM() LIMIT 1",
    [])
  %Postgrex.Result{rows: [row]} = query
  {id, saying, author} = row
  %Splurty.Quote{id: id, saying: saying, author: author}
end
end
Run Code Online (Sandbox Code Playgroud)

我收到一个运行时错误,即Ecto.Adapters.Postgres.query不存在(未定义的函数).

我试图搜索Ecto文档,发现可能有一个名为run_query的函数,但它也不起作用.

我想我正在使用Ecto 1.1.4并且我没有找到任何关于如何使用Ecto查询原始SQL的好(最新)样本.

firehoseproject的链接是:http://phoenix.thefirehoseproject.com/

elixir phoenix-framework

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

Visual Studio 2010生成无法文件复制错误

我正在Visual Studio 2010中构建项目,并且构建失败,因为它无法将assemblyname.dll文件从obj复制到bin文件夹.确切的错误消息是:

错误7无法将文件"obj\Debug\AssemblyName.dll"复制到"bin\AssemblyName.dll".无法对打开了用户映射部分的文件执行请求的操作.

我认为这是因为无法访问bin-folder中的上一个文件.当我尝试手动删除文件时,出现错误"操作无法完成,因为该文件在另一个程序中打开".如果我试图看看哪个应用程序使用Unlocker锁定文件,我没有得到任何结果(找不到锁定句柄).

如果我重新启动Visual Studio,则错误消失但在一两次构建后再次发生.不言而喻,这严重减缓了我的速度.有什么建议如何开始解决这个问题?

copy build file-locking visual-studio-2010

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

SonarQube C# 分析失败“不是有效的指针行偏移”

我已经使用 SonarQube 成功分析了一些项目一段时间,但现在遇到了一些错误。确切的错误是:

12:26:01.413 ERROR: Error during SonarQube Scanner execution
java.lang.IllegalArgumentException: 74 is not a valid line offset for pointer. File [blaablaablaa...] has 70 character(s) at line 118
    at org.sonar.api.internal.google.common.base.Preconditions.checkArgument(Preconditions.java:145)
    at org.sonar.api.batch.fs.internal.DefaultInputFile.checkValid(DefaultInputFile.java:252)
    at org.sonar.api.batch.fs.internal.DefaultInputFile.newPointer(DefaultInputFile.java:186)
    at org.sonar.api.batch.fs.internal.DefaultInputFile.newRange(DefaultInputFile.java:202)
    at org.sonarsource.dotnet.shared.plugins.AbstractSensor$SarifParserCallbackImplementation.onIssue(AbstractSensor.java:160)
    at org.sonarsource.dotnet.shared.sarif.SarifParser10.handleResultFileElement(SarifParser10.java:130)
    at org.sonarsource.dotnet.shared.sarif.SarifParser10.handleLocationsElement(SarifParser10.java:102)
    at org.sonarsource.dotnet.shared.sarif.SarifParser10.handleIssue(SarifParser10.java:73)
    at org.sonarsource.dotnet.shared.sarif.SarifParser10.handleIssues(SarifParser10.java:62)
    at org.sonarsource.dotnet.shared.sarif.SarifParser10.accept(SarifParser10.java:54)
    at org.sonarsource.dotnet.shared.sarif.SarifParser10.accept(SarifParser10.java:37)
    at org.sonar.plugins.csharp.CSharpSensor.importRoslynReport(CSharpSensor.java:188)
    at org.sonar.plugins.csharp.CSharpSensor.executeInternal(CSharpSensor.java:123)
    at org.sonar.plugins.csharp.CSharpSensor.execute(CSharpSensor.java:79)
    at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
    at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:57)
    at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:49)
    at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78)
    at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:175)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:143)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:128)
    at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:262)
    at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:257)
    at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:255)
    at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:247)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:143) …
Run Code Online (Sandbox Code Playgroud)

c# msbuild sonarqube

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

实体框架代码第一个DbContext在编译期间检查ConnectionString?

似乎Code First DbContext在编译期间真的使用了给定的ConnectionString吗?我甚至不知道这是怎么可能的,但对我来说似乎是这样.如果我关闭我的本地SQL Server,我收到错误,指出"无法获取DbContext类型的MetadataWorkspace ...".打开SQL Server,一切都编译好了.

这是我的上下文的一部分(我使用的是现有的数据库,是的,我知道,实际上并不是第一个代码)

public class MyContext : DbContext
{
    public MyContext() : base("MY_DYNAMIC_CONNECTIONSTRING")
    {
        Database.SetInitializer<MyContext>(null);
    }
    ...
Run Code Online (Sandbox Code Playgroud)

如果确实如此,那就是一个很大的问题.我怎么能阻止它呢?如果我使用ConnectionString不起作用的单独构建机器怎么办?或者我做错了什么?有什么建议?

entity-framework connection-string code-first wcf-ria-services ef-code-first

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

无法使用IdentityServer验证AccessToken

我们使用IdentityServer进行身份验证,我们使用JwtSecurityTokenHandler ValidateToken验证访问令牌.这曾经工作正常,但在我们将客户端应用程序升级到ASP.NET Core 1.0 RTM(来自RC1)后,验证失败.收到的错误是:

IDX10501: Signature validation failed. Unable to match 'kid'
Run Code Online (Sandbox Code Playgroud)

当我查看使用过的证书的KeyID和令牌的孩子时,我可以看到它们是不同的.我检查了IdentityServer jwks-endpoint以检查我是否拥有正确的证书,并注意到kid和certificate key id也与该端点不同.根据我的理解,他们应该是一样的?

由于证书,令牌和IdentityServer仍然相同且仅升级了客户端应用程序核心,因此在升级过程中代码崩溃的原因有任何想法.

编辑(更多信息)
我怀疑默认情况下ValidateIssuerSigningKey为false,之前甚至没有验证密钥(因此它正在工作).现在似乎忽略了ValidateIssuerSigningKey(作为不好的做法?),因此验证失败.

解决方法/修复
通过手动设置IssuerSigningKeyResolver并明确提供用于验证的密钥,修复问题和验证通过.不确定解决方法有多好以及为什么默认不起作用,但至少我现在可以继续.

简化代码......

new JwtSecurityTokenHandler().ValidateToken(authTokens.AccessToken,
  new TokenValidationParameters()
  {
    IssuerSigningKeys = keys,
    ValidAudience = audience,
    ValidIssuer = issuer,
    IssuerSigningKeyResolver = (arbitrarily, declaring, these, parameters) => new List<X509SecurityKey> { securityKey }
   }, out securityToken);
Run Code Online (Sandbox Code Playgroud)

certificate access-token identityserver3

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

VSTS的SonarQube代码覆盖率

我正在使用VSTS托管代理VS2017来运行构建,测试和SonarQube分析。我正在使用来自市场(https://marketplace.visualstudio.com/items?itemName=SonarSource.sonarqube)的SonarQube扩展。使用的任务版本是4,它将SonarQube Scanner用于MSBuild 4.0.2。

该分析效果很好,但是没有将代码覆盖率结果转换为SonarQube。我可以在VSTS(构建详细信息)中看到代码覆盖率分析,但在SonarQube中看不到。

以我的理解,问题在于VSTS生成扩展名为.codecoverage的二进制文件。SonarQube不知道如何处理此文件。我在将其转换为XML格式时遇到了麻烦,因为我似乎无能为力。

是否有人在SonarQube中成功使用了VSTS,并将代码覆盖率结果也带到了SonarQube?您如何设置?

编辑1
我使用的SonarQube版本是:6.7版(内部版本33306),社区版

编辑2
分析结束时实际上会生成xml文件,如下面的注释中所述。这来自日志:

2018-03-06T11:14:56.4189055Z 11:14:56.417  Attempting to locate the 
CodeCoverage.exe tool...
2018-03-06T11:14:56.4210147Z 11:14:56.42  Attempting to locate the 
CodeCoverage.exe tool using setup configuration...
2018-03-06T11:14:56.4345085Z 11:14:56.433  Code coverage command line tool: 
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Team 
Tools\Dynamic Code Coverage Tools\CodeCoverage.exe
2018-03-06T11:14:56.4349101Z 11:14:56.434  Fetching code coverage report 
information from TFS...
2018-03-06T11:14:56.4363869Z 11:14:56.435  Attempting to locate a test 
results (.trx) file...
2018-03-06T11:14:57.0458245Z 11:14:57.044  Looking for TRX files in: 
D:\a\1\TestResults, D:\a\1\s\TestResults
2018-03-06T11:14:57.0462747Z 11:14:57.045  Located a test …
Run Code Online (Sandbox Code Playgroud)

code-coverage sonarqube azure-devops

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