Вызов методов WMPLib.mediaCollection из ASP.NET в IIS возвращает пустые списки - PullRequest
2 голосов
/ 26 сентября 2008

Я пытаюсь получить доступ к библиотеке проигрывателя Windows Media из ASP.NET.

Следующий код:

WMPLib.WindowsMediaPlayer mplayer = new WMPLib.WindowsMediaPlayer ();

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

Возвращает непустой список при запуске с использованием веб-сервера разработки VS2005, но пустой список при использовании IIS.

Установка олицетворения с помощью:

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

Не помогает. Кажется, что WMPLib до сих пор не считает, что работает как пользователь с библиотекой.

Есть ли способ обойти это?

Ответы [ 2 ]

1 голос
/ 26 сентября 2008

Вы пробовали настроить через web.config в ASP.NET? Когда вы работаете в отладчике VS2005, вы (вероятно) запускаете код как сам, но в IIS вы будете запускать его как IUSR_ имя_машины или другую системную учетную запись с низким разрешением.

Попробуйте добавить что-то подобное в ваш файл web.config:

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

Не знаю, работает ли это конкретно с Media Player, но оно работает для других проблем, связанных с идентификацией / безопасностью, таких как эта.

0 голосов
/ 23 октября 2008

Я столкнулся с подобной проблемой: код отлично работает на моем локальном компьютере, но после развертывания на моем домашнем сервере он не может извлечь что-либо из библиотеки мультимедиа (я могу открыть медиаплеер, чтобы проверить наличие песен в библиотеке)

Сначала я подумал, что это тоже проблема процесса, поэтому я попытался настроить пул приложений для запуска под своей учетной записью и настроить его с помощью тегов олицетворения личности; ни один не решил проблему.

Я не уверен, какие другие различия могут вызвать проблему

...