2008-09-26 23 views
2

我試圖從ASP.NET訪問Windows Media Player庫。在IIS上從ASP.NET調用WMPLib.mediaCollection方法返回空列表

以下代碼:

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

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

使用IIS時,使用VS2005開發Web服務器,但空單運行時返回一個非空列表。

設置模擬與:

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

沒有幫助。看起來WMPLib仍然不認爲它作爲擁有庫的用戶運行。

有沒有辦法解決這個問題?

回答

1

您是否嘗試過使用ASP.NET中的web.config配置?當你在VS2005調試器中運行時,你可能(可能)像你自己一樣運行代碼,但是當在IIS下時,你將運行它作爲IUSR_ 計算機名稱或另一個低權限系統帳戶。

嘗試增加這樣的事情你的web.config文件:

<system.web> 
<identity impersonate="true" userName="MYDOMAIN\myuser" password="[email protected]" /> 
</system.web> 

不知道這是否專門工作與媒體播放器,但它工作在這樣的其他身份/安全相關的問題。

0

我碰到了類似的問題:代碼工作正常,我的本地機器上,但一旦部署了我的主服務器上,它可以拉不出來任何媒體庫的(我可以打開媒體播放器來驗證有在庫中的歌曲)

起初我還以爲這是一個過程的問題一樣,所以我都嘗試設置應用程序池下我自己的帳戶下運行,並通過身份來設置它冒充標籤;沒有解決這個問題。我不確定其他差異會導致問題