2016-05-05 6 views
0

MVCアプリケーションで画像をアップロードしようとするとこのエラーが発生します。 ローカルコンピュータでアプリケーションを起動したときに、このエラーは発生しません。これは、ホスティング時にアプリケーションを配備した場合にのみ表示されます。 これは、画像を保存するための私のコードです:画像をアップロードしようとすると、GDI +で一般的なエラーが発生する

if (file.ContentLength < 5242880 && (extension == ".jpg" || extension == ".jpeg")){ 
     string localFileName = Guid.NewGuid().ToString() + extension; 
     string pathToSave = System.IO.Path.Combine(Server.MapPath("~/Content/Images"), localFileName); 
     var relativePath = MakeRelative(pathToSave, Server.MapPath("~")); 
     file.SaveAs(pathToSave); 
} 

その後、私は私のDBにパスを保存します。 スタックトレースは次のとおりです。

[ExternalException (0x80004005): A generic error occurred in GDI+.] 
    System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams) +477384 
    System.Drawing.Image.Save(String filename, ImageFormat format) +69 
    System.Drawing.Image.Save(String filename) +25 
    Marriage_Agency_Women_.Controllers.ApplicationBaseController.CreateThumbnail(String source, Int32 maxSize) +328 
    Marriage_Agency_Women_.Controllers.<Edit>d__3.MoveNext() +3938 
    System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +92 
    System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58 
    System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) +97 
    System.Web.Mvc.Async.<>c__DisplayClass37.<BeginInvokeAsynchronousActionMethod>b__36(IAsyncResult asyncResult) +17 
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32 
    System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +50 
    System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225 
    System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34 
    System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26 
    System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100 
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27 
    System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36 
    System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26 
    System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 
    System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 
    System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +129 

このエラーの理由ができますか? 助けてくれてありがとう!

+0

あなたのコードを 'try {} catch()'ブロックに置き、例外を投稿してください。 – SeM

+1

あなたは、これまたは同様の警告が、.NETのすべてのバージョン[System.Drawing Namespace](https://msdn.microsoft.com/en-us/library/system)のドキュメントとともに表示されていることをご存知ですか? (v = vs.110).aspx): "System.Drawing名前空間内のクラスは、WindowsまたはASP.NETサービス内での使用はサポートされていません。これらのクラスのいずれかをこれらのアプリケーションタイプ内から使用しようとすると、サービスのパフォーマンスの低下や実行時の例外のようなものです」。 –

答えて

0

私のせいでした。私は存在しなかったフォルダにサムネイルを保存しようとしました。手伝ってくれてありがとう!

関連する問題