Jef*_*tte 5 c# uac internet-explorer-8 windows-7 mime-types
我在本地计算机上运行.net服务(Windows 7 x64,IE8,.net 3.5,C#),它将文件返回给浏览器以响应用户操作.使用firefox或chrome,文件正确下载,我们的应用程序通过自定义mime类型启动,一切都很好.
但是,使用IE8,我收到一个"无法从中下载文件的对话框.无法打开此网站.请求的网站不可用或无法找到.请稍后再试".
使用fiddler,我验证了IE确实从服务接收了有效负载.
如果我关闭UAC,IE会下载该文件并启动相关的应用程序.
关闭UAC不是一个可行的解决方案,因为我们的客户将启用它.
如何启用IE8以启用启用UAC的关联应用程序?
编辑:
在使用此处所述的编程ID重新注册mime类型后,我可以让IE打开显示"打开或保存"对话框,以便在第二次从地址栏请求链接时.为什么它第一次不起作用?
我今天能够解决这个问题.事实证明,代码隐藏是将CacheControl响应的属性设置为HttpCacheability.NoCache.删除该行代码解决了这个问题.修复程序的另一半是使用ProgId正确注册mime类型和文件扩展名.
我删除了对just的响应content-disposition: attachment; filename=xxx和字符串数据的二进制写入.IE正确显示了"打开"或"保存"对话框,即使mime嗅探报告文件为text/html(实际上应该是text/plain).
我添加了内容类型标题并重新测试,然后是nosniff选项并重新测试,最后是缓存控件.在每次测试之间,我重新启动VM以确保它是一个原始测试环境(即,没有缓存或预加载).只有缓存控制行以负面方式影响了行为.
| 归档时间: |
|
| 查看次数: |
10175 次 |
| 最近记录: |