2

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

以下代码:

WMPLib.WindowsMediaPlayer mplayer = new 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 仍然不认为它作为拥有库的用户运行。

有没有办法解决这个问题?

4

2 回答 2

1

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

尝试将这样的内容添加到您的 web.config 文件中:

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

不知道这是否适用于媒体播放器,但它适用于像这样的其他身份/安全相关问题。

于 2008-09-26T17:51:53.680 回答
0

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

一开始我还以为是进程问题,所以我尝试了将应用程序池设置为在我自己的帐户下运行,并通过身份模拟标签进行设置;都没有解决问题。

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

于 2008-10-23T13:17:51.113 回答