我有一个使用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) 我有一个ASP.NET MVC应用程序,默认页面应该是index.html,它是磁盘上的实际文件.
我可以使用www.mydomain.com/index.html浏览到该文件,因此我知道它将被提供并存在,但如果我使用www.mydomain.com,我会得到404.
我确保在IIS7中正确设置了默认文档,我甚至已经注释掉了我的global.asax中定义的所有路由,以确保我没有导致此问题的路由.
总结一下:
有谁知道如何让ASP.NET MVC提供默认文档?
如何在MemoryStream
不先将Excel工作簿保存到文件系统的情况下将其写入?
Microsoft.Office.Interop.Excel.WorkBook
保存选项中的所有选项都采用文件名.
使用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尊重我在所有情况下定义的批量大小?
我有一个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) 有没有办法确定StructureMap中是否配置了特定类型?
如果没有在StructureMap中专门配置,我想返回泛型类型.
我正在尝试在我的组件中测试功能,基本思想是设置了一些状态,当按下按钮时,将调用具有设置状态的函数。代码有效,但是当我尝试测试它时,我没有得到预期的结果,就好像在测试期间从未设置过状态一样。
我在使用 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) .net ×1
asp.net-mvc ×1
c# ×1
c#-5.0 ×1
enzyme ×1
excel ×1
jestjs ×1
msbuild ×1
mstest ×1
nhibernate ×1
react-hooks ×1
react-native ×1
reactjs ×1
structuremap ×1