Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net core 5.0 RequestSizeLimit不工作_C#_Asp.net Core_.net 5 - Fatal编程技术网

C# asp.net core 5.0 RequestSizeLimit不工作

C# asp.net core 5.0 RequestSizeLimit不工作,c#,asp.net-core,.net-5,C#,Asp.net Core,.net 5,我正在使用ASP.net core 5.0,它似乎不起作用 我有以下控制器 [HttpPost("addfile")] [RequestSizeLimit(5_242_880)] // 5MB public IActionResult AddFile([FromBody] IFormFile file) 现在,当我想测试所述控制器时,我创建了一个IFormFile,如下所示: public static Mock<IFormFile> TestFile(stri

我正在使用ASP.net core 5.0,它似乎不起作用

我有以下控制器

[HttpPost("addfile")]
[RequestSizeLimit(5_242_880)] // 5MB
public IActionResult AddFile([FromBody] IFormFile file)
现在,当我想测试所述控制器时,我创建了一个
IFormFile
,如下所示:

public static Mock<IFormFile> TestFile(string filename, string content)
{
    var fileMock = new Mock<IFormFile>();

    var ms = new MemoryStream();
    var writer = new StreamWriter(ms);
    writer.Write(content);
    writer.Flush();
    ms.Position = 0;
    fileMock.Setup(_ => _.OpenReadStream()).Returns(ms);
    fileMock.Setup(_ => _.FileName).Returns(filename);
    fileMock.Setup(_ => _.Length).Returns(ms.Length);

    return fileMock;
}
var bigContent = RandomString(50 * 1024 * 1024);
var testFile = TestFile("calendar.ical", bigContent);
...
var result = controller.AddFile(testFile.Object);
信息:
RandomString
返回给定长度的字符串(不是最优化的方式):

公共静态字符串RandomString(int-length)
{
StringBuilder=新的StringBuilder();
随机=新随机();
char ch;
for(int i=0;i
我希望状态代码不是200-OK。
我做错了什么吗?

您正在对控制器进行单元测试-不幸的是,
[RequestSizeLimit]
属性在请求管道中被实现为一个过滤器-并且过滤器没有作为单元测试的一部分运行

这是描述的

设置控制器操作的单元测试,以关注控制器的行为。控制器单元测试避免了过滤器、路由和模型绑定等场景。涵盖共同响应请求的组件之间交互的测试由集成测试处理。有关集成测试的详细信息,请参阅ASP.NET Core中的集成测试


可以找到有关集成测试的更多信息。

您正在对控制器进行单元测试-不幸的是,
[RequestSizeLimit]
属性在请求管道中作为筛选器实现-并且筛选器不作为单元测试的一部分运行

这是描述的

设置控制器操作的单元测试,以关注控制器的行为。控制器单元测试避免了过滤器、路由和模型绑定等场景。涵盖共同响应请求的组件之间交互的测试由集成测试处理。有关集成测试的详细信息,请参阅ASP.NET Core中的集成测试


可以找到有关集成测试的更多信息。

这似乎是Web服务器的配置错误,可能有帮助这似乎是Web服务器的配置错误,可能有帮助哦,我不知道。非常感谢你的回答。哦,我不知道。非常感谢你的回答。
public static string RandomString(int length)
{
    StringBuilder builder = new StringBuilder();
    Random random = new Random();
    char ch;
    for (int i = 0; i < length; i++)
    {
        ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
        builder.Append(ch);
    }
    return builder.ToString();
}