File upload 带有MVC4 Web API的文件上载表单:获取错误101(net::ERR_CONNECTION_RESET):连接已重置。错误
尝试使用VS2010访问MVC4 Web API应用程序中的控制器操作时,我收到一个网页不可用错误。我试图上传一个小尺寸(小于1MB)的pdf文档,创建一个byte[]以传递到另一个服务。然而,我无法进入我的普通控制器或api控制器。我的应用程序工作正常,除此之外,所有视图/部分/等都显示良好(带有文件上传表单的页面)。此视图是强类型的局部视图 我尝试过使用此处显示的方法:以及此处显示的方法:但这两种方法都不起作用,因为我的action属性找不到我的action。无论我放api/文档还是主页/api/文档,它都不会工作。所以我放弃了,回到了我的html助手beginform,希望它能找到那样的方式…但它没有。因此,在放弃了那些花哨的web api(无法使异步工作)之后,我想我应该回到老派,通过表单传递文件,但我得到了同样的错误。我还尝试重新创建页面,调整我的HttpHandler、运行时调整、路由和apiroutes,但我完全不知所措。请帮忙 我的用户界面: 我的错误: 我的表格:File upload 带有MVC4 Web API的文件上载表单:获取错误101(net::ERR_CONNECTION_RESET):连接已重置。错误,file-upload,asp.net-mvc-4,asp.net-web-api,interrupted-exception,asp.net-web-api-routing,File Upload,Asp.net Mvc 4,Asp.net Web Api,Interrupted Exception,Asp.net Web Api Routing,尝试使用VS2010访问MVC4 Web API应用程序中的控制器操作时,我收到一个网页不可用错误。我试图上传一个小尺寸(小于1MB)的pdf文档,创建一个byte[]以传递到另一个服务。然而,我无法进入我的普通控制器或api控制器。我的应用程序工作正常,除此之外,所有视图/部分/等都显示良好(带有文件上传表单的页面)。此视图是强类型的局部视图 我尝试过使用此处显示的方法:以及此处显示的方法:但这两种方法都不起作用,因为我的action属性找不到我的action。无论我放api/文档还是主页/a
<div class="tab-pane" id="addDoc">
@using (Html.BeginForm("AddDocument", "Documents", FormMethod.Post, new { @class = "form-horizontal", @enctype = "multipart/form-data" }))
{
<label class="control-label" for="newFile">Upload : </label>
<input name="newFile" type="file" />
<input type="submit" value="Submit" class="btn btn-success"/>
}
</div>
我的正常控制器操作:
[HttpPost]
public ActionResult AddDocument(HttpPostedFileBase newFile)
{
return View("DevNotes");
}
我的网站配置:
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "Home/api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
我的路线图:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default2",
url: "Home/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我的网络配置的一部分:
<httpHandlers>
<add path="*.less" verb="GET" type="dotless.Core.LessCssHttpHandler, dotless.Core" />
</httpHandlers>
<httpRuntime executionTimeout="99009" maxRequestLength="2097151"/>
由于安装了Fiddler,我有时会出现同样的错误。当它被配置为作为代理启动时,它会对您的LAN配置进行更改,使其作为代理运行,有时如果没有Fiddler,系统将无法工作。希望这有帮助。我想 @使用(Html.begin)( //在这里,您可以写下您的URL要去的地方,而不是“文档” //如果您想要web api配置==>写“Home/api/Documents” //如果要在路由配置中==>第1个“文档未满足”第2个“主页/文档” 在您的错误页面中,将URL视为/Index/AddDocument…,这是错误的方式。。。。 所以,检查URL是否正确运行,并正确给出控制器和操作的名称
在路由文件中定义…对于我来说,问题在于nginx:
http {
client_max_body_size 0;
}
我将client_max_body_size设置为0。默认值为1M
资料来源:
"AddDocument", //Action
"Documents", // Controller (only controller name not
accept in web api route you written constant
string as ( Home/api/ then controller name)
so write like that...)
FormMethod.Post,
new { @class = "form-horizontal",
@enctype = "multipart/form-data" }))
{ }
http {
client_max_body_size 0;
}