Iis

無法載入 DLL ‘Msacm32.dll’:找不到指定的模組

  • June 5, 2020

我想補充一下這個問題。

以前,當我執行執行舊版 Windows 2016 Server DC 安裝的舊 DC 伺服器時,這是有效的。

一旦我們失去了該 DC,然後硬碟驅動器故障導致備份 DC 以及整個 Web 森林失效,我們就失去了讓該站點正常執行的能力。

所以,過去的工作,現在,無論微軟做什麼,都行不通

錯誤

無法載入 DLL ‘Msacm32.dll’:找不到指定的模組。

(來自 HRESULT 的異常:0x8007007E)

說明:執行目前 Web 請求期間發生未處理的異常。請查看堆棧跟踪以獲取有關錯誤及其源自程式碼的位置的更多資訊。

異常詳細資訊:System.DllNotFoundException:無法載入 DLL

‘Msacm32.dll’:找不到指定的模組。(來自 HRESULT 的異常:0x8007007E)

這是堆棧跟踪:

$$ 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,AcmFormatSuggestFlagsSuggestFlags)+0

NAudio.Wave.Compression.AcmStream.SuggestPcmFormat(WaveFormatcompressedFormat)+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(布爾 includeStagesBeforeAsyncPoint,布爾 includeStagesAfterAsyncPoint) +678

它引用了文件 NAudio.dll

因此,我使用以下命令在每個核心伺服器上註冊了這個文件。

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

但是,我嘗試將其添加到全域記憶體中。它聲明它沒有一個強大的名稱。

"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

我重新啟動了每個 IIS 實例,但仍然收到上述錯誤。

畢竟

我做了一些搜尋 Msacm32.dll,它不在

我在桌面體驗中檢查的任何 Window 2016 CORE 伺服器中,它在 system32 和 syswow64 文件夾中。

我將文件複製到目前活動的伺服器核心並嘗試註冊它。

syswow64>REGSVR32 /i Msacm32.dll

它說它不是一個有效的 dll 或 ocx 文件。

我不記得這個文件之前有這個問題,這是我第一次看到這個文件出現這個錯誤。

我試圖記住我是否安裝了過去可能將該文件添加到 CORE 伺服器的東西,但我不記得必須這樣做。

我知道我剛剛註冊了 MP3 音頻文件,但從來沒有對 CORE 伺服器上的 Microsoft 音頻文件做任何事情。

更新

我將文件複製到所有核心伺服器的 syswow64 文件夾中。

現在,我收到以下錯誤。

試圖載入格式不正確的程序。(來自 HRESULT 的異常:0x8007000B) 說明:在執行目前 Web 請求期間發生未處理的異常。請查看堆棧跟踪以獲取有關錯誤及其源自程式碼的位置的更多資訊。

異常詳細資訊:System.BadImageFormatException:嘗試載入格式不正確的程序。(來自 HRESULT 的異常:0x8007000B)

所以,這讓我知道我移動了錯誤版本的文件,這是一件好事。(我認為)。所以,我將嘗試複製另一個較小版本的文件,看看那裡會發生什麼。

我將發布我的發現。

一個更新用較小的文件更新,我得到這個錯誤。

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 

對此的任何幫助將不勝感激。

EE

好的。

這是我發現的。

在沒有桌面體驗的 Windows 2016 Server Core 下不再支持我目前使用的 NAudio 組件。而2016 Server Core,沒有做桌面體驗的能力,也不想加到核心伺服器上。

NAudio 組件的開發人員在他的網站上有關於此錯誤和問題的所有資訊。

NoDriver 呼叫 acmFormat 建議使用 NAudio 播放 MP3

我正在尋找另一種獲取 MP3 元數據的解決方案,例如我也用於元數據的

TagLib

(NAudio 嚴格用於文件持續時間,因為它返回了正確的數據,而 TagLib 沒有。TagLib 的作者正在工作在上面。)。

我希望以上資訊對可能遇到同樣問題的其他人有所幫助。如果您在 Server 2016 Core 上使用 NAudio,它將不再工作。

引用自:https://serverfault.com/questions/1020103