Unable to load DLL 'Msacm32.dll': The specified module could not be found

1

I would like to add to this issue.
This was working previously when I was running our old DC Server running an older installation of Windows 2016 Server DC.
Once we lost that DC, and then a hard drive failure took out the backup DC, along with the entire Web Forest, we lost the ability to have this site run properly.
So, what used to work, now, with whatever Microsoft has done, does not work.

Error

Unable to load DLL 'Msacm32.dll': The specified module could not be found.
(Exception from HRESULT: 0x8007007E)

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.DllNotFoundException: Unable to load DLL
'Msacm32.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

This is the Stack Trace:

[DllNotFoundException: Unable to load DLL 'Msacm32.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)]
NAudio.Wave.Compression.AcmInterop.acmFormatSuggest2(IntPtr hAcmDriver, IntPtr sourceFormatPointer, IntPtr destFormatPointer, Int32 sizeDestFormat, AcmFormatSuggestFlags suggestFlags) +0
NAudio.Wave.Compression.AcmStream.SuggestPcmFormat(WaveFormat compressedFormat) +108
NAudio.Wave.AcmMp3FrameDecompressor..ctor(WaveFormat sourceFormat) +38 NAudio.Wave.Mp3FileReader.CreateAcmFrameDecompressor(WaveFormat mp3Format) +25 NAudio.Wave.Mp3FileReader..ctor(Stream inputStream, FrameDecompressorBuilder frameDecompressorBuilder, Boolean ownInputStream) +838 NAudio.Wave.Mp3FileReader..ctor(String mp3FileName) +83
TagLib._Default.UploadMultipleFiles(Object sender, EventArgs e) in G:\Inetpub\wwwroot\website.com\Media\Default.aspx.vb:94
System.Web.UI.Control.OnLoad(EventArgs e) +95
System.Web.UI.Control.LoadRecursive() +59
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +678

It references the file NAudio.dll
So, I registered this file on each of the Core Servers, using the following command.

windows\microsoft.net\framework\v2.0.50727\regasm     
G:\InetPub\wwwroot\website.com\Media\Bin\NAudio.dll

I tried to add it to the global cache, however. It states it did not have a strong name.

"Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools"
gacutil -i G:\InetPub\wwwroot\website.com\Media\Bin\NAudio.dll

I restarted each of the IIS Instances, and still receive the error above.

After all this
I did some searching for the Msacm32.dll, and it is not in any of the Window 2016 CORE Servers
I checked in the Desktop Experience, and it's in both system32 and syswow64 folders.
I copied the file over to the server core that is currently active and tried to register it.
syswow64>REGSVR32 /i Msacm32.dll
And it said it was not a valid dll or ocx file.

I don't ever remember having this issue before with this file, and this is the first time I've ever seen this error appear regarding this file.

I am trying to remember if I had installed something that might have added that file to the CORE servers in the past, and I do not recall having to.
I know that I have just registered MP3 audio files, but never, having to do anything with a Microsoft audio file on the CORE servers.

UPDATE
I copied the file to the syswow64 folder of all Core Servers.
Now, I am getting the following error.

An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) 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.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

So, this lets me know that I moved the wrong version of the file over, which is a good thing. (I think). So, I am going to try copying over another smaller version of the file and see what happens there.
I will post my findings.

NEXT UPDATE
Updated with the smaller file, and I get this error.

NoDriver calling acmFormatSuggest
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: NAudio.MmException: NoDriver calling acmFormatSuggest 

Any assistance on this would be much appreciated.
EE

iis
windows-server-2016
asked on Server Fault Jun 4, 2020 by CodingEE • edited Jun 5, 2020 by CodingEE

1 Answer

0

OK.
This is what I found out.
The NAudio component I am currently using is no longer supported under Windows 2016 Server Core without Desktop Experience. And 2016 Server Core, does not have the ability to do desktop experience, and nor would I want to add it to the core servers.

The developer of the NAudio component has all the information on his site about this error and issue.
NoDriver calling acmFormatSuggest playing MP3s with NAudio

I am looking in on another solution for getting MP3 metadata, like the
TagLib
I am also using for the metadata (NAudio was used strictly for the file duration, as it returned the proper data, as TagLib does not. The Author of TagLib is working on it.).

I hope the above information will assist others who might experience this same issue. If you are using NAudio on a Server 2016 Core, it will no longer work.

answered on Server Fault Jun 5, 2020 by CodingEE

User contributions licensed under CC BY-SA 3.0