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 – ASP .NET检查会话
- asp.net-core – 哪些所有类型的HTTP头都在ASP.NET 5中?
- asp.net-mvc-4 – 具有动态部分视图创建的MVC Ajax
- asp.net-core – 如何在使用asp.net 5时更改登录URL
- asp.net-mvc-3 – 使用构造方法参数过滤的Ninject绑定属性
- asp.net – 此行已经属于另一个表
- asp.net – 如何访问嵌套母版页中的控件?为什么它与内容页
- asp.net-mvc – 使用Entity Framework在控制器中检测模型属
- asp.net-mvc – ASP.NET MVC区域可以显示自己的错误页面集吗
- asp.net – 如何在Azure网站上禁用SSL v 3.0
- asp.net-mvc-3 – EF 4.1上的MvcMiniProfiler代码
- ASP.NET性能在32位/ 64位服务器之间降低
- asp.net – 发布管理 – 发布给用户的一小部分 –
- ASP.NET:这个HttpModule有什么作用? System.Se
- asp.net-mvc – Azure git部署 – 第二个程序集中
- asp.net – 使用Visual Studio 2012发布到azure时
- asp.net – LinkButton CommandName和CommandArg
- asp.net – 在项目之间共享aspx页面
- asp.net – 错误:类型存在于两个目录中
- asp.net-mvc – 当在视图中使用ko时,ko.applyBin
