从IIS上的ASP.NET调用WMPLib.mediaCollection方法将返回空列表

时间:2020-03-06 14:46:16  来源:igfitidea点击:

我正在尝试从ASP.NET访问Windows Media Player库。

如下代码:

WMPLib.WindowsMediaPlayer mplayer =新的WMPLib.WindowsMediaPlayer();

WMPLib.IWMPStringCollection list = mplayer.mediaCollection.getAttributeStringCollection(" artist"," audio");

使用VS2005开发Web服务器运行时,返回一个非空列表,但使用IIS时,返回一个空列表。

通过以下方式设置模拟:

System.Security.Principal.WindowsImpersonationContext impersonationContext =(((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();

无济于事。似乎WMPLib仍然不认为它以具有库的用户身份运行。

有办法解决这个问题吗?

解决方案

我们是否尝试过通过ASP.NET中的web.config进行配置?当我们在VS2005调试器中运行时,(可能)我们自己在运行代码,但是在IIS下,我们将以IUSR_machinename或者其他低权限系统帐户运行它。

尝试将以下内容添加到web.config文件中:

<system.web>
<identity impersonate="true" userName="MYDOMAIN\myuser" password="p@ssw0rd" />
</system.web>

不知道这是否专门与Media Player一起使用,但它可以解决其他与身份/安全性相关的问题。

我遇到了类似的问题:代码在我的本地计算机上运行正常,但是一旦部署到我的家庭服务器上,就无法将任何内容从媒体库中拉出(我可以打开媒体播放器来验证库中是否有歌曲) )

一开始我还以为这也是一个过程问题,所以我既尝试将应用程序池设置为在自己的帐户下运行,又尝试通过身份模拟标签进行设置。均未解决问题。

我不确定还有哪些其他差异会导致此问题