PDF在sitecore中转换为.ashx无法使用IE打开

与Sitecore中的所有媒体文件一样,扩展名将转换为.ashx,这对于使用IE和acrobat阅读器时访问我网站的访问者来说是一个问题。基本上用户点击下载链接,当前页面加载表明即将发生的事情,但什么也没有打开。我是否正确地说Adobe Acrobat在寻找.pdf的时候遇到了.ashf扩展问题,所以它只是放弃了?如果是这种情况,那我该如何解决呢? 凯尔     
已邀请:
我相信这可能是一个普遍的问题。您使用的是哪个版本的Sitecore? SDN上有各种各样的讨论: 如何避免与v5.3中的MIME类型相关的下载问题 论坛帖子1 论坛帖子2 我会检查上面第一个链接中提到的MIME类型。     
只是旁注: Firefox for Mac有直接处理.ashx文件的一般问题(即直接链接到它们)。 这通常是PDF格式的内容,因为它会尝试打开.ashx文件,而不会检查内容处置。 请注意Mac上Firefox的问题,因为PDF似乎无法在那里工作。 为此,您需要根据以下内容设置一些内容: http://sdn.sitecore.net/scrapbook/media%20files%20downloaded%20with%20ashx%20extension.aspx 如果你无法访问它基本上告诉你去web.config,找到这个:
<mediaType name="PDF file" extensions="pdf">
并改变
<forceDownload>false</forceDownload>
<forceDownload>true</forceDownload>
    
true会强制任何类型的浏览器下载pdf ... 这是最终的解决方案: 做一个C#课
public class MediaHandler : MediaRequestHandler
{
    public override void ProcessRequest(HttpContext context)
    {

        DeterminePDFRequest(context);

        base.ProcessRequest(context);

    }

    private static void DeterminePDFRequest(HttpContext context)
    {

        MediaRequest request = MediaManager.ParseMediaRequest(context.Request);

        if (request != null)
        {
            Media media = MediaManager.GetMedia(request.MediaUri);

            if (media != null)
            {
                Item item = media.MediaData.MediaItem;
                MediaItem mediaItem = media.MediaData.MediaItem;

                if (mediaItem != null)
                {

                    if (context.Request.UserAgent != null)
                    {
                        if (mediaItem.Extension != "pdf")
                            return;

                        string requestedUrl = context.Items["SC_REQUEST_MEASUREMENT_URL"].ToString();

                        if (!requestedUrl.Contains(".pdf"))
                        {

                            MediaUrlOptions mediaUrlOptions = new MediaUrlOptions
                            {
                                AbsolutePath = true,
                                DisableMediaCache = true,
                                DisableBrowserCache = true
                            };

                            string url = StringUtil.EnsurePrefix('/',
                                                                MediaManager.GetMediaUrl(mediaItem,
                                                                                        mediaUrlOptions));
                            url = url.Replace(".ashx", ".pdf");
                            QueryString queryString = new QueryString(url);
                            context.Response.Redirect(queryString.All);
                        }
                    }
                }
            }
        }
    }
}
确保在web.config中替换和更新
verb="*" path="sitecore_media.ashx"
以使用MediaHandler     

要回复问题请先登录注册