小编Jon*_*ill的帖子

Request.Content.ReadAsMultipartAsync永远不会返回

我有一个使用ASP.NET Web Api编写的系统的API,我试图扩展它以允许上传图像.我已经做了一些谷歌搜索,并找到了如何使用MultpartMemoryStreamProvider和一些异步方法接受文件的推荐方法,但我在ReadAsMultipartAsync上等待永远不会返回.

这是代码:

[HttpPost]
public async Task<HttpResponseMessage> LowResImage(int id)
{
    if (!Request.Content.IsMimeMultipartContent())
    {
        throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
    }

    var provider = new MultipartMemoryStreamProvider();

    try
    {
        await Request.Content.ReadAsMultipartAsync(provider);

        foreach (var item in provider.Contents)
        {
            if (item.Headers.ContentDisposition.FileName != null)
            {

            }
        }

        return Request.CreateResponse(HttpStatusCode.OK);
    }
    catch (System.Exception e)
    {
        return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以一路走到:

await Request.Content.ReadAsMultipartAsync(provider);
Run Code Online (Sandbox Code Playgroud)

它永远不会完成.

我等待永远不会回来的原因是什么?

更新

我试图使用curl POST这个动作,命令如下:

C:\cURL>curl -i -F filedata=@C:\LowResExample.jpg http://localhost:8000/Api/Photos/89/LowResImage
Run Code Online (Sandbox Code Playgroud)

我也尝试使用以下html来POST动作,同样的事情发生:

<form method="POST" action="http://localhost:8000/Api/Photos/89/LowResImage" enctype="multipart/form-data">
    <input type="file" name="fileupload"/>
    <input type="submit" name="submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)

c# c#-5.0 asp.net-web-api

54
推荐指数
2
解决办法
3万
查看次数

ASP.NET MVC不提供默认文档

我有一个ASP.NET MVC应用程序,默认页面应该是index.html,它是磁盘上的实际文件.

我可以使用www.mydomain.com/index.html浏览到该文件,因此我知道它将被提供并存在,但如果我使用www.mydomain.com,我会得到404.

我确保在IIS7中正确设置了默认文档,我甚至已经注释掉了我的global.asax中定义的所有路由,以确保我没有导致此问题的路由.

总结一下:

  • 我在磁盘上有一个index.html文件,IIS7设置为使用index.html作为默认文档.
  • 如果我删除我的ASP.NET MVC应用程序并保留index.html文件作为预期的默认文档.
  • 如果我发布我的ASP.NET MVC应用程序,那么index.html不会被默认文档提供服务.

有谁知道如何让ASP.NET MVC提供默认文档?

asp.net-mvc

21
推荐指数
2
解决办法
3万
查看次数

如何在.NET中将Excel工作簿写入MemoryStream?

如何在MemoryStream不先将Excel工作簿保存到文件系统的情况下将其写入?

Microsoft.Office.Interop.Excel.WorkBook保存选项中的所有选项都采用文件名.

.net excel

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

nhibernate交替批量大小

使用NHibernate执行查询时,如果将其设置为大于实际返回的结果,则似乎不尊重批量大小.

我正在使用最新版本的NHibernate 2.1.0.4000和Linq的GA到NHibernate.我有一个类似于Order的对象结构,它有一个OrderLines集合.OrderLines已被定义为包含以下xml的包:

<bag name="OrderLines" access="field.camelcase" table="MyDatabase.OrderLines" lazy="true"   batch-size="50">
    <key column="OrderId"/>
    <one-to-many class="OrderLine"/>
</bag>
Run Code Online (Sandbox Code Playgroud)

如果我查询Orders并获得50个结果,它会在单个查询中正确选择所有OrderLines,但如果我得到的结果少于50个,那么它似乎不符合定义的批量大小.

例如,如果执行3次查询,批量大小为25,12和3,则返回40个结果而不是50个

看起来它试图猜测要使用的正确批量大小(即它首先是批量大小的1/2,然后是剩余的1/2等).我希望它一直执行50的批量大小,如果少,那么批量大小尽可能大,在这种情况下批量大小为40.

如何让NHibernate尊重我在所有情况下定义的批量大小?

nhibernate

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

如何使用MSBuild运行MSUnit测试

我有一个MSBuild脚本,看起来类似于:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="Build">

        <MSBuild Projects="MyProject.UnitTest.sln" Targets="Build" />

    </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

如何运行解决方案中的MSTest单元测试?

我正在寻找类似于TFS Build中可以使用的东西:

<TestContainerInOutput Include="%2a%2a\%2aTest.dll" />
Run Code Online (Sandbox Code Playgroud)

msbuild mstest

5
推荐指数
0
解决办法
6987
查看次数

确定StructureMap是否配置了特定类型?

有没有办法确定StructureMap中是否配置了特定类型?

如果没有在StructureMap中专门配置,我想返回泛型类型.

structuremap

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

使用 React Native 和 Hooks 时,状态不会在 Jest 测试期间更新

我正在尝试在我的组件中测试功能,基本思想是设置了一些状态,当按下按钮时,将调用具有设置状态的函数。代码有效,但是当我尝试测试它时,我没有得到预期的结果,就好像在测试期间从未设置过状态一样。

我在使用 Jest 和 Enzyme 测试的 React Native 应用程序中使用带有钩子 (useState) 的功能组件。

复制我的问题的一个例子是:

import React, { useState } from "react";
import { View, Button } from "react-native";
import { shallow } from "enzyme";

const Example = function({ button2Press }) {
const [name, setName] = useState("");

  return (
    <View>
      <Button title="Button 1" onPress={() => setName("Hello")} />
      <Button title="Button 2" onPress={() => button2Press(name)} />
    </View>
  );
};

describe("Example", () => {
  it("updates the state", () => {
    const button2Press = jest.fn();
    const wrapper …
Run Code Online (Sandbox Code Playgroud)

reactjs jestjs react-native enzyme react-hooks

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