ASP.NET rdlc,外部图像不显示PDF格式的图像
我正在使用ASP.NET附带的Microsoft ReportViewer,并且有一个报表参数,应该在报表中设置图像的值(路径).我现在提供路径作为完整的URL,从http://开始,但也尝试将其作为应用程序相对路径,站点根路径等等.由于某种原因,图像始终显示为红色X时它导出为PDF.我只是在代码中创建一个控件实例,设置属性并直接导出到响应流,以便进行下载.
我只是不确定图像没有显示出来会出现什么问题,所以如果有任何想法请告诉我. 更新1 我已经确定我可以使用URL嵌入图像,如果它在我的公共Web服务器上,但是当我在localhost中运行时,图像将不会嵌入.我已经确认localhost,如果我将相同的URL粘贴到我的浏览器中,图像将打开正常.据我所知,我没有代理人.所以我可以解决我的问题,但我仍然不明白localhost的问题是什么. 更新2 忘记提到当从浏览器打开图像的URL时它工作正常. 解决方法
PDF不能包含引用外部图像(至少从我的理解中).为了使图像显示在PDF中,必须将其嵌入到文档中.因此,要使用外部图像,您的应用必须检索图像并将其存储在文档中.报告查看器将尝试为您执行此操作.
两个可能的答案: 首先,为了让您的应用将图像打包到PDF中,它必须能够从您指定的URL中检索图像.如果该URL位于代理后面(从应用服务器的角度来看)和/或需要凭据来访问,则这将对报表查看器的默认配置提出质询. 如果代理服务器出现问题,请参阅下面添加的web.config设置.您可能还需要提供网络凭据,以便您的应用可以对代理进行身份验证.有很多方法可以解决这个问题,但最简单的方法之一就是将您的应用程序作为域的服务帐户运行,该帐户有权遍历您的代理.您可以通过临时运行网站来测试这一点(应该是临时的,因为这是一种可怕的安全措施). 您正在使用的图像可能需要凭据才能访问(尝试使用空cookie在Firefox中提取图像并验证是否需要凭据才能访问它).如果它需要Windows身份验证,则代理安全性的相同解决方案可能适用于远程映像上所需的身份验证.如果它需要其他形式的身份验证,您最好下载并将图像嵌入到项目中. 也可以使用代码中的其他方法下载图像,并将其转换为字节数组以包含在报告中.网上有很多这样的例子,包括Stack Overflow here. 其次,看看下面的页面: http://msdn.microsoft.com/en-us/library/ms251715%28VS.80%29.aspx
<system.net> <defaultProxy> <proxy usesystemdefault = "false" bypassonlocal = "true" proxyaddress = "http://< proxyservername >:80/" /> <defaultProxy> </system.net> 希望其中一个或两个都有帮助. 杰瑞 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 追加?param =到mvc路由
- asp.net-mvc – 吉米·博加德:“阿贾克斯非常非常谨慎地使
- 如何在Substitution控件中使用ASP.Net服务器控件?
- Asp.net初识
- asp.net-mvc – 使用单元测试在asp.net mvc中验证重定向
- 身份验证 – DotNetOpenAuth的工作原理
- 会话的最大长度是什么ASP.net 4.0会话ID – 存储为varchar或
- asp.net-web-api – webapi批处理和委托处理程序
- asp.net-core – 如何轻松地从ASP.NET Core 2.1迁移到2.2?
- asp.net-mvc – 在MVC中没有持久化Cookie
- asp.net-mvc – 如何在Asp.Net MVC循环中呈现纯H
- asp.net-mvc-3 – Windows Azure Web MVC应用程序
- 具有干净输出的ASP.NET HTML控件?
- asp.net-mvc-3 – MVC3下拉列表未选择所选项目
- asp.net-mvc – 使用ViewModel的MVC 3动态表单
- asp.net-mvc – 如何在html.LabelFor中显示一些文
- 将ASP.NET Web窗体托管为Windows Azure网站
- ASP.NET MemoryCache跨应用程序共享
- asp.net-mvc – 从Html.RouteLink生成绝对URL
- asp.net – Summernote上传文件到服务器