在VS2010中嘗試訪問MVC4 Web-API應用程序中的控制器操作時,出現網頁不可用錯誤。我試圖上傳一個小尺寸(小於1MB)的pdf文檔,創建一個字節[]傳遞給另一個服務。但是,我無法進入我的常規控制器或我的api控制器。我的應用程序工作和所有意見/部分/等。除了這一個(帶有文件上傳表單的頁面)顯示正常。這個視圖是一個強類型的部分。使用MVC4 Web-API的文件上傳表單:獲取錯誤101(net :: ERR_CONNECTION_RESET):連接已重置。錯誤
我試過使用這裏顯示的方法:Upload a file MVC 4 Web API .NET 4以及在這裏:http://blogs.msdn.com/b/henrikn/archive/2012/03/01/file-upload-and-asp-net-web-api.aspx和他們都不工作,因爲我的動作屬性找不到我的動作。無論我把api/Documents還是Home/api/Documents都不行。所以我放棄了,回到我的html幫手beginform,希望它會找到這種方式......但事實並非如此。所以在放棄了花哨的web-api的東西(不能異步工作)之後,我想我只是上了老學校並通過一個表單傳遞文件,但是我得到了同樣的錯誤。我也嘗試重新創建頁面,調整我的httphandlers,運行時調整,路由和apiroutes,並完全處於虧損狀態。請幫忙!
我的UI:
我的錯誤:
我的形式:
<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>
我的API控制器: 我知道這是沒有意義的,但我有一個斷點來看看它是否到達這裏,它不會...
[HttpPost]
public AddDocumentResponse AddDocument(HttpPostedFileBase newFile)
{
AddDocumentResponse response = new AddDocumentResponse();
return response;
}
我的正常控制器操作:
[HttpPost]
public ActionResult AddDocument(HttpPostedFileBase newFile)
{
return View("DevNotes");
}
我WebApiConfig:
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "Home/api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
我RouteConfig:
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 }
);
}
我的WebConfig的部分:
<httpHandlers>
<add path="*.less" verb="GET" type="dotless.Core.LessCssHttpHandler, dotless.Core" />
</httpHandlers>
<httpRuntime executionTimeout="99009" maxRequestLength="2097151"/>