小编Gre*_*uff的帖子

不允许使用ASP.NET Core 2.2 WebAPI 405方法

设定

  • Windows 10
  • Visual Studio 2017专业版
  • ASP.Net Core 2.2

我想做什么

针对使用PATCH动词的Web API中的控制器方法运行集成测试

MyController.cs

namespace FluidIT.API.Controllers
{
    [Route("api/v1/[controller]")]
    [ApiController]
    public class MyController : ControllerBase
    {
        private readonly IMediator _mediator;
        private readonly IMyQueries _myQueries;

        public JobsController(IMediator mediator, IMyQueries myQueries)
        {
            _mediator = mediator ?? throw new ArgumentNullException(nameof(mediator));
            _myQueries = myQueries ?? throw new ArgumentNullException(nameof(myQueries));
        }

        // PATCH: api/v1/my/{id}
        [Route("id:int")]
        [HttpPatch]
        public async Task<IActionResult> RemoveMeAsync(int id)
        {
            bool commandResult = false;

            try
            {
                commandResult = await _mediator.Send(new RemoveMeCommand(id));
                return NoContent();
            } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core

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

将 FromForm 绑定到 IFormFile 属性的 C# 集成测试控制器

我正在使用:

  • Visual Studio 2017 专业版
  • dotnet 核心 SDK 2.2.102
  • XUnit 2.4.1

我想做什么

集成测试接受表单数据的 API 控制器方法。

设置

  • 我的控制器中的 API 路由使用[FromForm]属性接受 CommandObject
  • CommandObject 的属性之一是类型 List<IFormFile>,它旨在管理属于请求的任何文件
  • 当我从 Postman 手动测试时,Controller 方法按预期工作。

问题

文件不绑定到List<IFormFile>属性。其他一切都按预期工作,但文件没有。这是我第一次使用 Multipart Form Data,所以不知道该尝试什么。

当我调试测试时,你可以看到除了Documents属性之外的一切都正常(注意,这与下面的代码不 100% 匹配,因为我不得不混淆一些东西)

在此处输入图片说明

我看过的东西

有很多与多部分表单数据相关的东西,我尝试过的一些解决方案是:

MyIntegrationTest.cs

我的集成测试设置背后有很多代码。如果我把它都贴在这里,我认为它不会很有帮助。最重要的一条信息是变量server的类型Microsoft.AspNetCore.TestHost.TestServer

[Fact]
async Task Post_ItemAsync_HappyPath_ReturnsOKStatusCode()
{
    var fileDir = @"C:/path/to/files";
    var fileNames = new string[] { "test.docx", "test.txt" };

    using (var server = CreateTestServer())
    { …
Run Code Online (Sandbox Code Playgroud)

c# multipartform-data asp.net-core

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

从 Terraform local-exec 配置程序运行 python 脚本

版本

\n
    \n
  • VS代码:v1.74.3
  • \n
  • Python:v3.9.1
  • \n
  • 地形 v1.3.6
  • \n
\n

设置

\n

我有以下文件夹结构

\n
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.tf\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 scripts\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_script.py\n
Run Code Online (Sandbox Code Playgroud)\n

主要.tf:

\n
locals {\n  python = (substr(pathexpand("~"), 0, 1) == "/") ? "python3" : "python.exe"\n}\n\nresource "null_resource" "custom_objects" {\n  for_each = local.custom_objects\n\n  triggers = {\n    name        = each.key\n  }\n\n  provisioner "local-exec" {\n    command = <<-EOT\n      python3 -m my_script \'{"key_1": "value_1"}\'\n    EOT\n    interpreter = [\n      local.python\n    ]\n    working_dir = "${path.module}/scripts"\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

./scripts/my_script.py:

\n
if __name__ == \'__main__\':\n    print(\'my_script executed.\')\n
Run Code Online (Sandbox Code Playgroud)\n …

terraform

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

无法通过SQL Server Management Studio连接到SQL Server Linux Docker容器

我对Linux操作系统很陌生,所以希望这不是一个愚蠢的问题!

软件:
适用
于Windows的Windows 10 Pro Docker(1.13.0-beta38(9805))
SQL Server Management Studio v17.0 RC1

问题: 我正在尝试使用SSMS连接到我的SQL Server Linux容器.它没有用,所以查看文档似乎需要在SQL Server Linux映像之上安装SQL Server工具(页面底部).

我按照这些说明在Ubuntu上安装SQL Server Tools(SQL Server Linux Image的基本映像)

错误: bash: curl: command not found

重现错误的步骤:

  • 拉最新microsoft/sql-server-linux图像
  • 按照说明运行: docker run -e 'ACCEPT_EULA=Y' -e SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux
  • 使用附加到容器: docker exec -it <container_id> /bin/bash
  • 尝试导入公用存储库GPG密钥: curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

我尝试过的事情:

  • 我试过跑,apt-get install curl但我得到的只是E: Unable to locate package curl
  • 谷歌搜索 - 没有尽头 …

sql-server docker ubuntu-16.04

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

.NET Core 2.1控制台应用程序中的IHttpClientFactory引用System.Net.Http

工具类

  • Visual Studio 2017专业版(15.8.7)
  • dotnetcore SDK 2.1.403

情境

我正在尝试使用dotnet核心框架创建控制台应用程序。控制台应用程序需要发出API请求。

我已经阅读了有关IHttpClientFactory作为dotnet core 2.1一部分发布的新内容的信息。

官员documenation表明,所有我需要添加到我的项目是对一个参考Microsoft.Extensions.HttpNuGet包。我已经做到了

问题

我已将添加IHttpClientFactory到类中,但Visual Studio仅选择System.Net.Http名称空间作为建议的参考:

在此处输入图片说明

我做错了什么:S

c# .net-core .net-core-2.1

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

Terraform 破坏 API 网关且 VPC 链接失败

设置

  • 地形 v 0.11.14
  • OpenAPI 规范 3.0 定义我的 API 网关的主体

地形资源

我创建了一个私有 API 网关,它通过 VPC 链接将流量路由到 NLB。我已经部署了 API,但为了简洁起见,我省略了下面的该资源,因为它很琐碎。

resource "aws_api_gateway_rest_api" "this" {
  name        = "MyAPI"
  body        = "${file("./api-spec.yaml")}"

  endpoint_configuration {
    types = ["PRIVATE"]
  }
}

resource "aws_lb" "app" {
  name               = "MyNLB"
  internal           = true
  load_balancer_type = "network"
  subnets            = ["MySubnetIds"]
}

resource "aws_api_gateway_vpc_link" "nlb" {
  name        = "api-gateway-to-nlb"
  target_arns = ["${aws_lb.app.arn}"]
}
Run Code Online (Sandbox Code Playgroud)

文件中引用了 VPC 链接api-spec.yaml。相关部分是:

paths:
  /items:
    get:
      summary: Gets a collection of items
      responses:
        '200':
          description: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-vpc terraform

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

启动时删除Powershell错误

我试图安装Posh-Git以使用带有Powershell的ssh.

我按照这里的说明操作

此处的文件未经过数字签名,因此我更改了执行策略以进行安装.然后我(无论出于什么原因)决定不使用它,所以我删除了文件.

现在每当我启动Powershell时,我都会收到类似下面的错误:

The term 'C:\xxx\xxx\profile.example.ps1' is not recognized as the name of a cmdlet, function, script file, or operable program.
Run Code Online (Sandbox Code Playgroud)

每次启动Powershell时如何阻止此错误消息出现?

powershell posh-git

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

Windows 上的 AWS CLI SSM 获取参数 InvalidParameters

我正在使用

GitBash v2.17.0

AWS CLI v1.16.67

视窗 10

问题

SecureString在 AWS SSM Parameter Store 中创建了一个参数。例如,让我们调用参数

/levelOne/levelTwo  
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 AWS CLI 检索参数。为此,我使用以下命令:

aws ssm get-parameters --names '/levelOne/LevelTwo' --with-decryption  
Run Code Online (Sandbox Code Playgroud)

问题是返回的结果是这样的:

在此处输入图片说明

如您所见,参数以C:/Program Files/Git. 谁能解释一下我做错了什么?

谢谢

amazon-web-services aws-cli aws-ssm

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