C# 服务器错误-找不到路径的一部分';C:\home\site\wwwroot\App_Data\Temp\1.png';
我在尝试将图像上载到我的网站时遇到以下错误 “/”应用程序中出现服务器错误 找不到路径的一部分 'C:\home\site\wwwroot\App\u Data\Temp\1.png' 描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 异常详细信息:System.IO.DirectoryNotFoundException:无法 查找路径“C:\home\site\wwwroot\App\u Data\Temp\1.png”的一部分 源错误: 在执行过程中生成了未处理的异常 当前web请求。关于货物来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常 堆栈跟踪: [DirectoryNotFoundException:找不到路径的一部分 “C:\home\site\wwwroot\App\u Data\Temp\1.png”。]C# 服务器错误-找不到路径的一部分';C:\home\site\wwwroot\App_Data\Temp\1.png';,c#,asp.net,asp.net-mvc,file,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,File,Asp.net Mvc 4,我在尝试将图像上载到我的网站时遇到以下错误 “/”应用程序中出现服务器错误 找不到路径的一部分 'C:\home\site\wwwroot\App\u Data\Temp\1.png' 描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 异常详细信息:System.IO.DirectoryNotFoundException:无法 查找路径“C:\home\site\wwwroot\App\u Data\Temp\1.png”的一部
System.IO.\uuu Error.WinIOError(Int32 errorCode,字符串maybeFullPath) +353 System.IO.FileStream.Init(字符串路径、文件模式、文件访问权限、Int32权限、布尔用户权限、文件共享共享、, Int32 bufferSize、FileOptions选项、安全属性secAttrs、, 字符串msgPath,布尔bFromProxy,布尔useLongPath,布尔 checkHost)+1326 System.IO.FileStream..ctor(字符串路径,文件模式 模式、文件访问、文件共享共享、Int32 bufferSize、, FileOptions选项,字符串msgPath,布尔bFromProxy)+60
System.IO.FileStream..ctor(字符串路径,文件模式)+55
System.Web.HttpPostedFile.SaveAs(字符串文件名)+94
System.Web.HttpPostedFileWrapper.SaveAs(字符串文件名)+14
RoomAuditSystem.Controller.HomeController.Index(HttpPostedFileBase 文件)+96 lambda_方法(闭包、控制器库、对象[])+104 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase 控制器,对象[]参数)+14
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary
2参数)+157
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext
controllerContext,ActionDescriptor ActionDescriptor,IDictionary
2
参数)+27System.Web.Mvc.Async.AsyncControllerActionInvoker.b_u39(IAsyncResult asyncResult,ActionInvoking innerInvokeState)+22
System.Web.Mvc.Async.WrappedAsyncResult
2.CallEndDelegate(IAsyncResult
异步结果)+29
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+49System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult 异步结果)+32
System.Web.Mvc.Async.AsyncInvocationWithFilters.b__3d() +50 System.Web.Mvc.Async.c__DisplayClass46.b__3f() +225 System.Web.Mvc.Async.c__显示类33.b__32(IAsyncResult asyncResult)+10
System.Web.Mvc.Async.WrappedAsyncResult
1.CallEndDelegate(IAsyncResult
异步结果)+10
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+49System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult 异步结果)+34
System.Web.Mvc.Async.c__显示类2B.b__1c() +26 System.Web.Mvc.Async.c__DisplayClass21.b__1e(IAsyncResult 异步结果)+100
System.Web.Mvc.Async.WrappedAsyncResult
1.CallEndDelegate(IAsyncResult
异步结果)+10
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+49System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult 异步结果)+27
System.Web.Mvc.Controller.b_u1d(IAsyncResult asyncResult,ExecuteCoretate innerState)+13
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult
异步结果)+29
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+49System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+36 System.Web.Mvc.Controller.b___15(IAsyncResult 异步结果,控制器)+12
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult
异步结果)+22
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+49System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)+26
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult 异步结果)+10
System.Web.Mvc.MvcHandler.b_uu5(IAsyncResult asyncResult,ProcessRequestState innerState)+21
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult
异步结果)+29
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+49System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28 System.Web.Mvc.MvcHandler.System.Web.IHTTPassynchandler.EndProcessRequest(IAsyncResult 结果)+9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9744373 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+155 以下是处理此问题的代码部分:
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/Temp"), fileName);
file.SaveAs(path);
// create a barcode reader instance
IBarcodeReader reader = new BarcodeReader();
// load a bitmap
Bitmap bitmap = new Bitmap(path);
Bitmap resized = new Bitmap(bitmap, new Size(400, 400));
// detect and decode the barcode inside the bitmap
var result = reader.Decode(resized);
bitmap.Dispose();
// Delete file once we have finished with it
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
// do something with the result
if (result != null)
{
return RedirectToAction("Create", "Audit", new { roomID = result.Text });
//txtDecoderType.Text = result.BarcodeFormat.ToString();
}
// Decode error
else
{
return RedirectToAction("Index");
}
}
// File error
else
{
return RedirectToAction("Index");
}
}
它在我的本地机器上运行良好,但当我在线发布它时,它似乎不起作用。我的站点根目录中有一个名为App_Data的目录和另一个名为Temp的目录
非常感谢您的帮助。例外情况是明确的。这条路的一部分不存在。重要的是,
App_数据
在发布过程中不包括在内,因此仅仅因为它存在于本地项目中,并不意味着它实际上就存在于生产服务器上。除此之外,请检查整个路径,即您的C驱动器上必须直接有一个主页
目录,该目录必须有一个站点
目录,等等
再说一次,如果一切正常,就没有办法得到例外。该路径的某些部分不正确或不存在。例外