【发布时间】:2019-11-26 03:52:24
【问题描述】:
我将 asp.net 核心应用程序 docker 映像部署到 Kubernetes 集群。我的应用程序正在使用 NAudio 从用户那里获取麦克风流并发送到 Google Speech-To-Text。
但在我部署之后,在 Kubernetes 日志记录中出现以下错误:
System.DllNotFoundException:无法加载共享库 'Msacm32.dll' 或其依赖项之一。为了帮助诊断 加载问题,考虑设置 LD_DEBUG 环境变量: libMsacm32.dll:无法打开共享对象文件:没有这样的文件或 NAudio.Wave.Compression.AcmInterop.acmStreamOpen2(IntPtr& hAcmStream, IntPtr hAcmDriver, IntPtr sourceFormatPointer, IntPtr destFormatPointer, WaveFilter waveFilter, IntPtr 回调, IntPtr 例如,AcmStreamOpenFlags openFlags) 在 NAudio.Wave.Compression.AcmStream..ctor(WaveFormat sourceFormat, WaveFormat destFormat) 在 NAudio.Wave.WaveFormatConversionProvider..ctor(WaveFormat targetFormat, IWaveProvider sourceProvider) 在 NAudio.Wave.WaveFormatConversionStream..ctor(WaveFormat targetFormat, WaveStream 源流)在 Web.API.GoogleApi.GoogleSpeechSession.WriteBufferToStreamingContext(字节[] 缓冲区)在 /app/GoogleApi/GoogleSpeechSession.cs:line 385 at Web.API.GoogleApi.GoogleSpeechSession.SubmitToGoogle(Byte[] buffer) 在 /app/GoogleApi/GoogleSpeechSession.cs:406 行
那么,有没有办法将 NAudio 部署到 Kubernetes?或者我必须换到另一个图书馆?
如果您知道,请帮助我。 谢谢
【问题讨论】:
-
更多输入可能吗?在我看来,您使用的是 Windows 库 (.dll),由于非常明显的原因,它没有在 Linux 上运行。你在做 P/invoke 吗?或者它是一个nuget包?您是否针对 Linux 运行时部署了它?不如看看this issue
-
我尝试同时使用 Nuget 和 windows 库 (.dll)。也许它们不受 Kubernetes 上的 Linux 支持
标签: c# docker asp.net-core kubernetes naudio