小编Rom*_*ets的帖子

C#缺少内容类型边界

我正在使用RestEase客户端库从一个服务向另一个服务发出请求.它的界面看起来像这样

public interface IImportService1ApiClient
{
    [Put]
    [Header("Content-Type", "multipart/form-data")]
    Task<CreateValidationJobResponse> ImportZip([Body] byte[] zipByteArray);
}
Run Code Online (Sandbox Code Playgroud)

和端点(.Net Core 1.1,Web Api):

    [HttpPut()]
    [Consumes("multipart/form-data")]
    public async Task<IActionResult> ImportZip()
    {
         var zipFile = HttpContext.Request.Form.Files.FirstOrDefault();
     ...
Run Code Online (Sandbox Code Playgroud)

所以我能够提出请求,但是当我试图从froms文件集中获取文件时,我得到了一个例外

System.IO.InvalidDataException: Missing content-type boundary.
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

 Connection id "0HL8CNQ0E4M94": An unhandled exception was thrown by the application.
System.IO.InvalidDataException: Missing content-type boundary.
   at Microsoft.AspNetCore.Http.Features.FormFeature.GetBoundary(MediaTypeHeaderValue contentType, Int32 lengthLimit)
   at Microsoft.AspNetCore.Http.Features.FormFeature.<InnerReadFormAsync>d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Http.Features.FormFeature.ReadForm()
   at RODIX.Tacs.Services.Import.Api.Controllers.TacsLegacyImportController.<ImportZip>d__3.MoveNext() in …
Run Code Online (Sandbox Code Playgroud)

c# boundary media-type .net-core

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

VSTS Build已过期

我创建了Pull Request来触发构建并且构建成功,但是一段时间后我的构建状态变为"build expired",所以为了完成pull请求我需要再次触发它.所以问题是:为什么会发生这种情况以及如何避免构建过期?

tfs tfsbuild azure-devops azure-pipelines

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

C# JsonConvert SerializeXmlNode 空的属性

我正在使用 JsonConvert SerializeXmlNode 将 xml 转换为 json。我面临的问题是我有一个标签有时可以有值有时为空

<AustrittDatum>2018-01-31+01:00</AustrittDatum>
...
<AustrittDatum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
Run Code Online (Sandbox Code Playgroud)

结果 - 我在尝试将 json 反序列化为具有字符串属性“AustrittDatum”的 C# 对象时遇到异常 - “Newtonsoft.Json.JsonReaderException: 'Error reading string. Unexpected token: StartObject.Path 'AustrittDatum'.' “, 因为

<AustrittDatum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xsi:nil="true"/> 
Run Code Online (Sandbox Code Playgroud)

被序列化为

"AustrittDatum": {
  "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
  "@xsi:nil": "true"
},
Run Code Online (Sandbox Code Playgroud)

我怎样才能强迫它成为这样的事情,"AustrittDatum": ""或者也许有一些适当的方法来解决它?

c# xml json.net

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

消息不能大于65536字节

我正在使用Azure Queue发送电子邮件.但是最后一次,即使在查询邮件大小之后,我也会遇到有关队列大小限制的异常,最高可达65536字节.

在此输入图像描述

azure azure-storage-queues

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

Azure 搜索 - 作为第一个或单个结果的完全匹配

我正在使用基于丰富的 Lucene 查询解析器语法的 Azure 搜索。我将“~1”定义为距离一个符号的附加参数)。但我面临的问题是,即使存在完全匹配,实体也不会被排序。(例如,“blue~1”会返回“blues”、“blue”、“glue”。或者在搜索“P002”等产品SKU时,我会得到“P003”、“P005”、“P004”、“ P002", "P001", "P006" ) 所以我的问题是:有什么方法可以定义,完全匹配的实体必须在列表中的第一个,或者即使在我使用模糊搜索时也是单一搜索结果“~1 “?

lucene azure azure-cognitive-search

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

C# IFormFile 作为 ZipFile

我有一个 REST API 端点,它在 .Net Core 1.1 上接收 zip 文件。我从这样的请求中获取 IFormFile

var zipFile = HttpContext.Request.Form.Files.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

然后我需要将它传递给不支持 IFormFile 的 .Net Standard 1.5 中的 service 方法。

所以问题是:如何将 IFormFile 转换为 ZipFile 或标准 1.5 支持的其他类型,或者可能有一些更合适的方法来操作 zip 文件?谢谢!

c# zipfile iformfile asp.net-core-1.1 .net-standard

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