C# Web Api可以';不要上传多个文件

C# Web Api可以';不要上传多个文件,c#,asp.net-web-api,C#,Asp.net Web Api,我正在使用来自的Filip W的解决方案。对于单个文件,它工作得很好。但是对于多个文件,我会得到错误:NetworkError:500内部服务器错误 Response Cache-Control no-cache Content-Length 0 Date Tue, 08 Apr 2014 15:23:07 GMT Expires -1 Pragma no-cache Server Microsoft-IIS/8.0 X-AspNet-Version 4.0.30319 X-Powered-By

我正在使用来自的Filip W的解决方案。对于单个文件,它工作得很好。但是对于多个文件,我会得到错误:
NetworkError:500内部服务器错误

Response
Cache-Control no-cache
Content-Length 0
Date Tue, 08 Apr 2014 15:23:07 GMT
Expires -1
Pragma no-cache
Server Microsoft-IIS/8.0
X-AspNet-Version 4.0.30319
X-Powered-By ASP.NET
X-SourceFiles =?UTF-8?B?YzpcdXNlcnNcYW5kcmV5LnNoZWRrb1xkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDEzXFByb2plY3RzXFBSRVBQXFBSRVBQXGFwaVx1cGxvYWQ=?=
Request
Accept text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Connection keep-alive
Cookie __AntiXsrfToken=b7dbaa70f0cd4c35a8a3a22d75faae03
Host localhost:4955
Referer http://localhost:4955/test.html
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0
简单html:

<body>
    <form action="/api/upload" method="post" enctype="multipart/form-data">
        <label for="somefile">File</label>
        <input name="somefile" type="file" multiple />
        <input type="submit" value="Submit" />
    </form>
</body>

文件
我如何解决这个问题?

如果你是Filip W,我认为动作名称有输入错误

改变

<form action="/api/upload"
如果你是Filip W,我认为动作名称有拼写错误

改变

<form action="/api/upload"

被接受的答案,而正确的答案并不是这个问题的解决方案。如果有人在谷歌搜索时发现这个,我想我会引导你朝正确的方向走

下面是解决问题的方法。。。 编辑web.config并向system.web部分添加maxRequestLength,如下所示:

<configuration>
  <system.web>
    <httpRuntime maxRequestLength ="2000000"/>
  </system.web>
</configuration>


这将增加你的上限,而这正是OP问题的真正原因。

公认的答案,而“正确”并不是这个问题的解决方案。如果有人在谷歌搜索时发现这个,我想我会引导你朝正确的方向走

下面是解决问题的方法。。。 编辑web.config并向system.web部分添加maxRequestLength,如下所示:

<configuration>
  <system.web>
    <httpRuntime maxRequestLength ="2000000"/>
  </system.web>
</configuration>


这将增加上限,这是OP问题的真正原因

我的控制器名称是UploadController。所以我改了这个名字。这也没什么大不了的。500是服务器错误,所以可能会发布你的RouteConfig,因为你修改了教程代码。我的控制器名是UploadController。所以我改了这个名字。不管怎么说,这也没什么大不了的。500是服务器错误,所以可能会发布RouteConfig,因为您已经修改了教程代码。500状态是服务器错误,您是否确实尝试过调试您正在调用的web api方法以确保没有收到异常?我发现了两个:异常:抛出:“超过了最大请求长度。”(System.Web.HttpException)引发System.Web.HttpException:“超过了最大请求长度。”时间:08.04.2014 22:56:49线程:工作线程[8672]秒:异常:引发:“读取MIME多部分正文部分时出错。”(System.IO.IOException)引发System.IO.IOException:“读取MIME多部分正文部分时出错。”时间:08.04.2014 22:56:49线程:工作线程[8672]该死,这是关于请求长度的。谢谢大家,请原谅我这么漫不经心。我会将答案标记为IsabelHM post,因为她的答案是第一个。500状态是服务器错误,您是否确实尝试过调试您正在调用的web api方法以确保没有收到异常?我发现了两个:异常:抛出:“超过最大请求长度。”(System.Web.HttpException)引发System.Web.HttpException:“超过最大请求长度”。时间:08.04.2014 22:56:49线程:工作线程[8672]秒:异常:引发:“读取MIME多部分正文部分时出错。”(System.IO.IOException)引发System.IO.IOException:”读取MIME多部分主体部分时出错。“时间:08.04.2014 22:56:49线程:工作线程[8672]该死,这是关于请求长度的。谢谢大家,请原谅我这么漫不经心。我会把伊莎贝尔姆的回答标记为她的第一个回答。是的,你的回答是正确的,但实际上我自己已经找到了这个原因,只需标记@IsabelHM answer,因为这里没有其他选项。@andrey.shedko这个回答应该标记为correct,接受答案是错误的,将来如果你解决你自己的问题,要么删除问题,要么更恰当地自己添加答案并将其标记为正确是的,你的答案是正确的,但实际上我自己已经找到了这个原因,只需标记@IsabelHM答案,因为这里没有其他选项。@andrey.shedko这个答案应该是正确的被标记为正确,接受答案是错误的,将来如果你解决了自己的问题,要么删除该问题,要么更恰当地自己添加答案并标记为正确