- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在网页中嵌入了 Windows 媒体播放器,使用通常的 <object>
和<embed>
标签。该视频由 ashx(http 处理程序)提供。当我尝试播放视频时,我通常(但并非总是)收到一条错误消息,告诉我文件扩展名 (ashx) 与文件格式不匹配。
这种情况发生在 IE(9 和 10)以及带有 WMP 插件的 Firefox(最新)中。
我知道标签(带有 classid 等)是正确的,因为媒体播放器会显示并允许我单击“播放”按钮。
ashx 在响应 header 中返回正确的 mime 类型 (video/x-ms-wmv) 和有效的文件名 (somevideo.wmv)。我尝试过内容处置附件和内联。
我尝试过使用“http://”、“https://”和“//”(我更喜欢)的网址
如果我直接将视频文件的 URL(包括 .ashx)放入浏览器地址栏中,视频就会下载并播放。
如果我修改对象标记以使用视频文件的直接路径 (/somewhere/somevideo.wmv),它可以工作 - 但我不能使用它作为解决方案。
同一个 ashx 可以毫无问题地提供各种其他格式的视频和音频 - 似乎嵌入式 Windows 媒体播放器不喜欢它。
这已经工作了好几年了 - 我认为这是一些新行为,尽管除了浏览器更新之外我无法确定发生了什么变化。
编辑:对 Fiddler 进行更仔细的研究显示了我之前错过的一些东西。如果我直接访问视频(通过在浏览器地址栏中输入 ashx url),视频将在独立媒体播放器中播放。内容类型和配置 header 正确。
但是,当使用嵌入式播放器时,我通常(并非总是)从用户代理“Microsoft-WebDAV-MiniRedir/6.1.7601”收到 OPTIONS 和 PROPFIND 请求。我没有启用 WebDAV,并且我不响应选项和 propfind 请求。嵌入式播放器不请求实际的视频文件。
更正 - 我实际上响应了选项请求 - 这是来自 fiddler 的请求和响应信息:
OPTIONS http://mydomain.com/myhandler.ashx HTTP/1.1
User-Agent: Microsoft-WebDAV-MiniRedir/6.1.7601
translate: f
Connection: Keep-Alive
Host: mydomain.com
HTTP/1.1 200 OK
Allow: OPTIONS, TRACE, GET, HEAD, POST
Server: Microsoft-IIS/7.5
Public: OPTIONS, TRACE, GET, HEAD, POST
X-Powered-By: ASP.NET
Date: Tue, 24 Dec 2013 16:03:49 GMT
Content-Length: 0
接下来是四个相同的请求,使用 PROPFIND 而不是 OPTIONS。响应是 404。
最佳答案
要成功播放文件,您需要正确指定 Content-Disposition 和 Content-Type header 。
在您的 ashx 中,确保添加以下行,
Response.AddHeader("Content-Disposition","attachment;filename='a.wmv'");
Response.AddHeader("Content-Type","video/wmv");
请根据您拥有的文件类型确定正确的名称和内容类型,并将其替换为上面的代码。
看起来有跨源资源共享问题,
确保您按照以下响应的建议为不同域返回正确的 header 。
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: X-Requested-With, Accept, Content-Type, Origin
Access-Control-Max-Age: 1728000
将 *
替换为嵌入您的媒体播放器的网页所在的域。
关于asp.net - 播放 .ashx 提供的 Windows Media 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20302265/
我遇到了一个关于呈现验证码图像的 ASHX 处理程序的真正令人烦恼的问题。真正让人头疼的是,它在两个月前还运行良好,而当我今天再次使用它时,它就停止工作了。 我得到的是一个经常抛出验证码的页面。这是来
每当我访问我的 ashx,例如 download.ashx?id=18 时,它都会获取文件,但是当保存对话框弹出时,它要我保存 download.ashx 而不是我存储在数据库中的文件(让说 mypd
我在使用 ASHX 处理程序时遇到问题。下面这段代码在本地机器上工作正常,但在服务器上不工作。 public void ProcessRequest(HttpContext context) {
1,sumbit表单提交 WebForm1.aspx源码: 复制代码代码如下: <%@ Page Language="C#" AutoEve
我有一个 ashx 处理程序,用于从 flex 页面上传文件。我无法扩展表单例份验证来保护 ashx 文件。有办法做到这一点吗? 最佳答案 您始终可以检查 .ashx 文件中的 context.Req
我在网上看到了很多关于如何通过从 UnsecuredLayoutsPageBase 等继承来允许匿名访问特定 SharePoint 应用程序页面的信息。 如何为布局目录中的 ashx 处理程序实现相同
我有 ashx 文件,我想从 ashx 重定向到 aspx 页面。一些解决方案? 最佳答案 void ProcessRequest(HttpContext context) { contex
我的业务逻辑代码存储在 .ashx 文件中。我发送一个 POST 请求来创建数据,并发送一个 GET 请求来检索 JSON 数据,然后将其显示在页面中。 我的问题是:如何防止 JoeNobody 直接
我正在尝试从我的 Amazon S3 存储桶加载远程图像并将其以二进制形式发送到浏览器。我也在尝试同时学习 ASP.Net。我多年来一直是一个经典的程序员,需要改变。我昨天开始,今天第一次头痛。 在我
我需要将大量数据从 Web 应用程序发送到 ASSX 处理程序。然后,处理程序会将数据发送到 Web 服务以获取响应。 (处理程序处理 Web 服务的原因是因为 Web 应用程序是用经典 ASP 编写
我正在尝试从我的 Amazon S3 存储桶加载远程图像并将其以二进制形式发送到浏览器。我也在尝试同时学习 ASP.Net。我多年来一直是一个经典的程序员,需要改变。我昨天开始,今天第一次头痛。 在我
我在我的应用程序中实现了一个适用于图像的通用处理程序,但是当我在浏览器中使用图像的查询字符串手动键入处理程序 URL 时,它会提示下载而不是显示。这是我的代码: public void Process
进行 ajax 调用 var request = $.ajax({ type: 'POST', url: "http://localhost/thcstore/AJAX/Aja
我在将逗号分隔的字符串拆分为数组时遇到问题。在我的 ashx 处理程序页面中,我的字符串如下所示: context.Response.Write(string.Format("{0},{1},{2},
双重道歉 - 首先,我是 ASP.net 的新手,所以我确定这是一个非常幼稚的问题,其次,看起来已经有一百个关于 ASP.NET 中相对路径的问题.不幸的是 - 我找不到能回答我问题的答案。 背景 -
我已经浏览了基本的 MSDN 信息和一些教程。根据我目前所学,我已经能够制作两个 .ashx 处理程序,我称之为 ImageHandler.ashx 和 PDFHandler.ashx。它们会按照您的
除了类似的问题,我找不到解决问题的方法。我对 JavaScript 也不是很熟练。 我创建了一个 ashx 处理程序来从 Sharepoint 站点下载文件。当数据库中的文件存在时,一切正常。如果文件
我有一个从 MySql 返回的图像。 Mysql中它的数据类型是image。我用 ashx 处理图像。下面的代码显示了我的 ashx 文件。 string imageID = context.Requ
当用户在浏览器中查看 ashx 文件时,我想更改打开窗口的“页面标题”。用户单击将在浏览器的新选项卡中打开的文档,并显示该文档(即 Word、Excel、PDF 等)。现在发生了什么,当我希望标题显示
我正在使用 ashx 提供来自数据库的图像,是否可以让用户单击允许他们在计算机上下载文件的链接。 (IE 显示保存对话框)就像您下载文件一样。这可能吗? 最佳答案 如果您希望它提示保存,请确保在创建响
我是一名优秀的程序员,十分优秀!