如何获取Silverlight在IIS 6上播放.WMA文件时.WMA Extn。被映射到Asp.Net

时间:2011-09-29 08:35:23

标签: .net silverlight iis-6

我似乎在这个问题上遇到了一些障碍 - 尽管在XP 6 IIS5.1上一切正常但是在IIS 6上我在过去的几天里尝试了所有内容以获得简单地播放.wma文件当.wma文件扩展名映射到IIS中的.Net时(通过主目录>配置,将扩展名映射到c:\ windows \ microsoft.net \ framework \ v2.0.50727 \ aspnet_isapi.dll。) - 没有成功!只要.wma文件类型没有映射到.net,该文件就可以正常播放,但是一旦它出现,我就会一直收到一个通用的“System.Exception - 3137”错误消息 - 我相信它不是一个文件找到/文件无法访问的消息。

无法播放的.wma文件未编译为silverlight .xap中的资源 - 我试图通过它只是服务器上文件夹/文件结构的正常部分来访问它。我尝试了很多不同的路径组合,但是当.wma扩展名没有映射到.net时,大概是路径正确,因为文件播放正常。设置源的SL应用程序中的代码是:      mediaPlayer.Source = new Uri(“http://www.thedomainname.org.uk/radio/featuredartistsplaylists/poprock.wma”,UriKind.Absolute); - 虽然我也尝试过.xap文件中的相对路径(有和没有前导'/'),使用ip地址的绝对路径而不是域名(给出网络错误)和相对文件系统路径\斜杠格式(这给出了网络错误)。 - 对于身份验证,IIS上为Windows用户帐户IUSR_HOST-7418启用了匿名访问,并且根本没有在web.config中设置模式我尝试将其设置为mode =“none”和mode =“windows”

我的网络托管设置是运行Windows Server 2003 Standard的VPS。我真的不知道自己在做什么,但我已经尝试了以下措施:

- In the IIS configuration mapping dialogue, trying with the 'verify that file exists' checkbox checked and unchecked

- adding a <httpHandlers> entry for .wma in the <system.web> tag of web.config as follows :
    <path "*.wma" verb="*" type="System.Web.UI.PageHandlerFactory" validate="false" />
(and tried it with validate="true")

- running the request with and without a global.asax and with a code-free Application_BeginRequest event - in case my code in global.asax was blocking access to the .wma

- granted Read & Execute rights on the folder containing the .wma to both the Internet Guest Account(HOST-7418\IUSR_HOST-7418) and Users(HOST-7418/Users) Account.

此时,除了怀疑它是某种文件/文件夹访问问题而不是路径问题之外,我几乎没有想法 - 尤其是因为我在Windows Server 2008上遇到了相同的问题(IIS 7 )VPS设置 - 再次使用.wma文件仅在未映射到.net时播放(使用编译的处理程序/模块),否则由于“System.Exception:2210 AG_E_INVALID_ARGUMENT”错误代码而拒绝播放。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

一些事情 - 首先,WMA不需要映射到.NET处理程序。它只是一个从Web服务器提供的静态文件,所以不要担心任何处理程序或web.config的东西。一个简单的香草IIS网站应该没问题。

首先,测试您的服务器配置。

如果您的文件位于http://www.mywebserver.com/SampleFile.wma,请打开Windows Media Player,转到文件&gt;打开URL,并将完整的URL放入并确保播放。如果没有,Silverlight将不起作用。

一旦有效,Silverlight MediaElement可以使用2种Windows Media流方式 - 渐进式下载或流式传输。 Progressive Download是您当前的场景,流媒体需要Windows Media Services,可以通过RTSP协议(MMS)或HTTP完成。

为了帮助您进行测试和比较,我已经为您提供了样本WMA,以便使用以下三种方案进行测试:

渐进式下载(普通网络服务器):http://static.x9tech.com/StackOverflow/WithoutASoundSample.wma

Streaming(WMS over MMS):mms://xstream5.x9tech.com/Static/StackOverflow/WithoutASoundSample.wma

Streaming(WMS over HTTP):http://xstream5.x9tech.com/Static/StackOverflow/WithoutASoundSample.wma