I'm attempting to implement the WebP image format using the ImageProcessor.Plugins.WebP library and the Umbraco image cropper. The package was installed using Nuget and everything works like a charm when run through Visual Studio on my development workstation. However, when I put the same source code out on a production server (Windows Server 2012 R2 Standard) the code fails with the following error:
Server Error in '/' Application.
Cannot load libwebp.dll
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ApplicationException: Cannot load libwebp.dll
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[ApplicationException: Cannot load libwebp.dll]
ImageProcessor.Configuration.<>c__DisplayClass7_0.<RegisterNativeBinary>b__0(String b) +391
System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) +65
ImageProcessor.Configuration.NativeBinaryFactory.RegisterNativeBinary(String name, Byte[] resourceBytes) +86
ImageProcessor.Plugins.WebP.Imaging.Formats.NativeMethods..cctor() +208
[TypeInitializationException: The type initializer for 'ImageProcessor.Plugins.WebP.Imaging.Formats.NativeMethods' threw an exception.]
ImageProcessor.Plugins.WebP.Imaging.Formats.NativeMethods.WebPFree(IntPtr pointer) +0
ImageProcessor.Plugins.WebP.Imaging.Formats.WebPFormat.EncodeLossly(Bitmap bitmap, Int32 quality, Byte[]& webpData) +268
ImageProcessor.Plugins.WebP.Imaging.Formats.WebPFormat.Save(Stream stream, Image image, Int64 bitDepth) +88
ImageProcessor.ImageFactory.Save(Stream stream) +69
ImageProcessor.Web.HttpModules.<ProcessImageAsync>d__34.MoveNext() +2754
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
System.Web.TaskAsyncHelper.EndTask(IAsyncResult ar) +63
System.Web.AsyncEventExecutionStep.InvokeEndHandler(IAsyncResult ar) +156
System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +123
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3062.0
I've verified that the dll is in the /bin folder and that the Application Pool is allowing 32 bit applications enabled.
Requires msvcr120.dll from the Visual C++ Redistributable Package for Visual Studio 2013 to be installed on the server.
If you are using version 1.0.2 or lower it instead requires msvcr110.dll from the Visual C++ Redistributable Package for Visual Studio 2012 to be installed.
Yes, thanks. I made sure to install the Visual C++ Redistributable Package for Visual Studio 2012 package on the server and verified that msvcr120.dll is in fact in the C:\Windows\System32 path.
Hello, I wanted to write about the subject because it is more than 1 year but I couldn't find a solution.
I installed necessary packages for webp in VS 2019. When I run it with IIS Express over VS, the webp file occurred without any problem.
I published the project and put it on my server and worked there.
But when I define and run the project locally to IIS, it gives the error in the topic header.
I looked at the instructions mentioned here, everything necessary was installed. IIS defines my projects and I work with it. As I explained above, webp is causing problems, so I can't include it in my project right now.
My project is ASP.Net Core 2.2.
Are there any solution suggestions on this subject?
My guess is the link I provided above is the correct download version for C++ Redistributable since that's the one I had bookmarked to deal with this issue.
You also need to make sure that the correct version of C++ Redistributable is installed - 32bit or 64bit. This needs to match what your website is running.
ImageProcessor.Plugins.WebP - Cannot load libwebp.dll
I'm attempting to implement the WebP image format using the ImageProcessor.Plugins.WebP library and the Umbraco image cropper. The package was installed using Nuget and everything works like a charm when run through Visual Studio on my development workstation. However, when I put the same source code out on a production server (Windows Server 2012 R2 Standard) the code fails with the following error:
I've verified that the dll is in the /bin folder and that the Application Pool is allowing 32 bit applications enabled.
Any thoughts on what the issue might be?
Hi,
On the plugin page https://imageprocessor.org/imageprocessor/plugins/webp/ it says:
Have you verified this?
Yes, thanks. I made sure to install the Visual C++ Redistributable Package for Visual Studio 2012 package on the server and verified that msvcr120.dll is in fact in the C:\Windows\System32 path.
Hello, I wanted to write about the subject because it is more than 1 year but I couldn't find a solution.
I installed necessary packages for webp in VS 2019. When I run it with IIS Express over VS, the webp file occurred without any problem.
I published the project and put it on my server and worked there.
But when I define and run the project locally to IIS, it gives the error in the topic header.
I looked at the instructions mentioned here, everything necessary was installed. IIS defines my projects and I work with it. As I explained above, webp is causing problems, so I can't include it in my project right now.
My project is ASP.Net Core 2.2.
Are there any solution suggestions on this subject?
Hi,
I am having the same issue with an Umbraco 8 site.
Did you ever find a solution for this?
I am experiencing the exact same problem. I have had this working locally and in multiple hosting environments without a problem.
This specific server Cannot load libwebp.dll
I tried copying then DDL into the bin folder to see if that fixed the issue. It didn't
Hi,
I can confirm I tried installing this and it did fix the issue. https://our.umbraco.com/forum/extending-umbraco-and-using-the-api/96459-imageprocessorpluginswebp-cannot-load-libwebpdll
I have never had to install this on any of my other servers. Maybe this gets included in the .Net 3.5 framework.
That's the only difference I can see between my working servers and this. The working ones have always has 3.5 installed where as this starts at 4.5.
Any this is fixed so thanks Soren.
Hi There,
We're having this error on a new install of Umbraco 8.11.1
I've asked and our host is running ASP.NET 4.7.2 and have the Visual C++ Redistributable installed.
Any idea what else could be causing this? No images that get cropped are showing on our site.
Hi Mike,
I think it may be down to the version C++ Redistributable
There was one time it didn't work for me. I cant remember what the correct version is. It's either 2102 or 2013.
From memory when I had this issue and it didn't work I also went and installed the other version and it works.
So I guess the take away here.
https://support.microsoft.com/en-us/topic/update-for-visual-c-2013-and-visual-c-redistributable-package-5b2ac5ab-4139-8acc-08e2-9578ec9b2cf1
I have done this a number of times will latest versions of Umbraco 8 and this works perfectly in every case.
Kind Regards
David
My guess is the link I provided above is the correct download version for C++ Redistributable since that's the one I had bookmarked to deal with this issue.
Hi,
You also need to make sure that the correct version of C++ Redistributable is installed - 32bit or 64bit. This needs to match what your website is running.
https://github.com/JimBobSquarePants/ImageProcessor/issues/764
Kind regards,
James.
is working on a reply...
This forum is in read-only mode while we transition to the new forum.
You can continue this topic on the new forum by tapping the "Continue discussion" link below.