C# Windows服务器2012R2上的NAudio MediaFoundation ReadFail 64位

C# Windows服务器2012R2上的NAudio MediaFoundation ReadFail 64位,c#,.net,naudio,C#,.net,Naudio,我的本地计算机操作系统是Win 7SP1 64位 服务器是Windows Server 2012R2 64位 我使用NAudio将AAC文件转换为WAV文件: MediaFoundationReader mfReader = new MediaFoundationReader(path); string tempfilename = Guid.NewGuid() + ".wav"; MemoryStream otS

我的本地计算机操作系统是Win 7SP1 64位

服务器是Windows Server 2012R2 64位

我使用NAudio将AAC文件转换为WAV文件:

        MediaFoundationReader mfReader =
                new MediaFoundationReader(path);
        string tempfilename = Guid.NewGuid() + ".wav";

        MemoryStream otStream = new MemoryStream();
        WaveFileWriter.WriteWavFileToStream(otStream, mfReader);
        Response.ContentType = "application/octet-stream";
        Response.AddHeader("Content-Disposition",
            "attachment; filename=" + HttpUtility.UrlEncode(tempfilename, Encoding.UTF8));
        Response.BinaryWrite(otStream.ToArray());
        Response.Flush();
        Response.End();
它在我自己的计算机上运行良好,但在服务器上抛出异常

System.Runtime.InteropServices.COMException(0x80004005):对 组件对象模型组件的调用返回了错误 HRESULT E_失败 在 NAudio.MediaFoundation.MediaFoundationInterop.MFCreateSourceReaderFromURL(字符串pwszURL、IMFAttributes pAttributes、IMFSourceReader和ppourcereader)

我已经在服务器上安装了“美达基金会”和“桌面体验”功能,但它仍然不起作用


我是否错过了小配置?或者只是NAudio不支持在服务器上工作?

我忘了提到一个细节,“path”参数是URL链接,而不是本地文件名

因此,这个错误实际上是由网络404引起的,因为服务器的网络环境受到了更多的限制

然后我更改了服务器可以访问的URL,它抛出了一个不同的错误:

System.Runtime.InteropServices.COMException(0xC00D36C4):不支持给定的 统一资源定位地址的字节流类型。 (异常来自 HRESULT:0xC00D36C4)

所以我尝试先用“WebClient”下载AAC文件,然后从本地磁盘读取

终于成功了

总之:NAudio当然可以在Server2012上运行,但它的一些功能可能会受到限制