首页 文章

在nop commerce中获取图片网址会引发异常

提问于
浏览
0

我有以下例外: System.Web.HttpException (0x80004005)

这是导致它的代码 .

using (var img = System.Drawing.Image.FromFile(_pictureService.GetThumbLocalPath(picture)))
{
    using (var memStream = new MemoryStream())
    {
        img.Save(memStream, img.RawFormat);
        byte[] imageBytes = memStream.ToArray();

        // Convert byte[] to Base64 String
        base64String = Convert.ToBase64String(imageBytes);
        ImageBase64 = base64String;
    }
}

只是无法弄清楚如何解决它 .

任何人都知道了什么 .

关于无效虚拟路径的事情 . 异常:“不是有效的虚拟路径 . 在 System.Web.Util.UrlPath.CheckValidVirtualPath (字符串路径)”

完全例外:

System.Web.HttpException (0x80004005): Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'. ---> System.Web.HttpException (0x80004005): Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'. ---> System.Web.HttpException (0x80004005): 'https:/mydomain.com.au/content/images/thumbs/myimage.jpeg' is not a valid virtual path. at System.Web.Util.UrlPath.CheckValidVirtualPath(String path) at System.Web.Util.UrlPath.Combine(String appPath, String basepath, String relative) at System.Web.VirtualPath.Combine(VirtualPath relativePath) at System.Web.HttpRequest.MapPath(VirtualPath virtualPath, VirtualPath baseVirtualDir, Boolean allowCrossAppMapping) at System.Web.HttpServerUtility.MapPath(String path) at Nop.Plugin.Widgets.DbgEnhancements.Controllers.CatalogController.<>c__DisplayClass56_0.<DbgHomeBrands>b__2() at Nop.Core.Caching.CacheExtensions.Get[T](ICacheManager cacheManager, String key, Int32 cacheTime, Func 1获取)在System.Linq.Enumerable的Nop.Core.Caching.CacheExtensions.Get [T](ICacheManager cacheManager,String key,Func 1 acquire) at Nop.Plugin.Widgets.DbgEnhancements.Controllers.CatalogController.<DbgHomeBrands>b__56_1(Manufacturer x) at System.Linq.Enumerable.WhereSelectListIterator 2.MoveNext(),System.Collections.Generic.List 1..ctor(IEnumerable 1集合) . 在System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor)的Nop.Core.Caching.CacheExtensions.Get [T](ICacheManager cacheManager,String key,Func 1 acquire) at Nop.Plugin.Widgets.DbgEnhancements.Controllers.CatalogController.DbgHomeBrands() at lambda_method(Closure , ControllerBase , Object[] ) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary 2参数)ToList [TSource](IEnumerable 1 source) at Nop.Plugin.Widgets.DbgEnhancements.Controllers.CatalogController.<DbgHomeBrands>b__56_0() at Nop.Core.Caching.CacheExtensions.Get[T](ICacheManager cacheManager, String key, Int32 cacheTime, Func 1获取) System.Web.Mvc上System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3d()的System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)中的actionDescriptor,IDictionary 2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult 2.CallEndDelegate(IAsyncResult asyncResult) . System.Web.Mvc上的System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters . <> c__DisplayClass46.b__3f()中的Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters . <> c__DisplayClass46.b__3f() . System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters . <> c__DisplayClass46中的System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters . <> c__DisplayClass46.b__3f()中的Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters . <> c__DisplayClass46.b__3f() . b__3f()在System.Web.Mvc的System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters . <> c__DisplayClass46.b__3f()处于System.Web.Mvc的System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters . <> c__DisplayClass46.b__3f() . System.Web.Mvc.Async.AsyncControllerActionInvoker的System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)中的Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters . <> c__DisplayClass46.b__3f() . <> c__DisplayClass21 . <> c__DisplayClass2b.b__1c( )在System.Web.Mvc.Async.As.Mvc.Async.AsyncControllerActionInvoker的System.Web.Mvc.Async.AsyncControllerActionInvoker . <> c__DisplayClass21.b__1e(IAsyncResult asyncResult)上System.Web.Mvc上System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult)的System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult,ExecuteCoreState innerState)中的.EndInvokeAction(IAsyncResult asyncResult) . System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler)上System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.<>c__DisplayClass4.<Wrap>b__3() at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func 1 func处的System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult,ProcessRequestState innerState)上的Controller.EndExecute(IAsyncResult asyncResult)处理程序,TextWriter编写器,Boolean preserveForm,布尔setPreviousPage,VirtualPath路径,VirtualPath filePath,字符串physPath,异常错误,字符串queryStringOverride)在System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler处理程序,TextWriter编写器,布尔preserveForm,布尔setPreviousPage,VirtualPath路径, System.Web.HttpServerUtility.Execute(I中的VirtualPath filePath,String physPath,Exception error,String queryStringOverride) System.Web.Mvc.Html.ChildActionExtensions.ActionHelper(HtmlHelper htmlHelper,String actionName,String)中的System.Web.HttpServerUtility.Execute(IHttpHandler handler,TextWriter writer,Boolean preserveForm)中的HttpHandler处理程序,TextWriter编写器,Boolean preserveForm,Boolean setPreviousPage)在System.Web.Mvc.Html.ChildActionExtensions.Action(HtmlHelper htmlHelper,String actionName,String controllerName,RouteValueDictionary routeValues)中的controllerName,RouteValueDictionary routeValues,TextWriter textWriter)位于c:\ inetpub \ vhosts \ snowys中的ASP._Page_Views_Widget_WidgetsByZone_cshtml.Execute() -livecube-test \ Views \ Widget \ WidgetsByZone.cshtml:System.Web.WebPages.WebPage.Web.B.P.P.M.P.M.P.M.P.M.P.Merc System.Web.Mvc.C上的System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)中的WebPageContext pageContext,TextWriter writer,WebPageRenderingBase startPage) ontrollerActionInvoker.InvokeActionResultFilterRecursive(IList 1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1个过滤器,Int32 filterIndex,ResultExecutingContextSystem.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1)中的System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1过滤器,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult)中的preContext,ControllerContext controllerContext,ActionResult actionResult) System.Web.Mvc.ControllerActionInvoker上的System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1过滤器,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult)中的过滤器,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult) System.Web.Mvc.Async.As上的System.Web.Mvc.Async.AsyncControllerActionInvoker . <> c__DisplayClass21.b__1e(IAsyncResult asyncResult)中的.InvokeActionResultFilterRecursive(IList 1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList 1过滤器,ActionResult actionResult) . System.Web.Mvc上System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult)的System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult,ExecuteCoreState innerState)中的yncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) System.Web.HttpServerUtility.ExecuteInternal(System.Web.HttpServerUtility.ExecuteInternal)上System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.<>c__DisplayClass4.<Wrap>b__3() at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func 1 func处的System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult,ProcessRequestState innerState)上的.Controller.EndExecute(IAsyncResult asyncResult)的IHttpHandler处理程序,TextWriter的作家,布尔preserveForm,布尔setPreviousPage,VirtualPath路径,VirtualPath文件路径,字符串physPath,异常错误,字符串queryStringOverride)在System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler的处理程序,TextWriter的作家,布尔preserveForm,布尔setPreviousPage,VirtualPath路径System.Web.H上的,VirtualPath filePath,String physPath,Exception error,String queryStringOverride) System.Web.Mvc.Html.ChildActionExtensions.ActionHelper(HtmlHelper htmlHelper,System.Web.HttpServerUtility.Execute(IHttpHandler handler,TextWriter writer,Boolean preserveForm)中的ttpServerUtility.Execute(IHttpHandler处理程序,TextWriter编写器,Boolean preserveForm,Boolean setPreviousPage)串actionName,字符串controllerName,RouteValueDictionary routeValues,TextWriter的的TextWriter)在System.Web.Mvc.Html.ChildActionExtensions.Action(的HtmlHelper的HtmlHelper,字符串actionName,字符串controllerName,RouteValueDictionary routeValues)在Nop.Web.Framework.HtmlExtensions.Widget(的HtmlHelper助手,字符串widgetZone,对象additionalData,字符串区域)在ASP._Page_Themes_Snowys_Views_Home_Index_cshtml.Execute()在c:\ inetpub \ vhosts \ snowys-livecube-test \ Themes \ Snowys \ Views \ Home \ Index.cshtml:第36行在System.Web System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageC)上System.Web.Mvc.WebViewPage.ExecutePageHierarchy()的.WebPages.WebPageBase.ExecutePageHierarchy() System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1过滤器,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult)中的System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)上的ontext,TextWriter writer,WebPageRenderingBase startPage)在System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1过滤器,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult)在System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1过滤器,Int32 filterIndex,ResultExecutingContext preContext, ControllerContext controllerContext,ActionResult actionResult)at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 filters,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResu)在System.Web.Mvc.Async的System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList 1过滤器,ActionResult actionResult)处于System.Web.Mvc.Async的System.Web.Mvc.Async.AsyncControllerActionInvoker . <> c__DisplayClass21.b__1e(IAsyncResult asyncResult) System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid上的System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult,ExecuteCoreState innerState)中的.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) 1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult),位于System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult,ProcessRequestState innerState)的System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult),位于System.Web.Mvc.Async.AsyncResultWrapper . WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

干杯

1 回答

  • 0

    好的,现在正在运作 .

    使用nopcommerce图片模型,我可以生成这样的base64图像 .

    base64String = Convert.ToBase64String(picture.PictureBinary);
    

    感谢您的帮助,希望这有助于其他人 .

相关问题