SSRS 将 URL 中的 Base64 字符串或字节数组显示为图像

SSRS Show Base64 String or Byte Array From URL as Image

我有一个 wevservice returns 图像作为 Base64 字符串或字节数组,我需要在 SSRS 中显示为图像。不知道该怎么做。

我尝试在图像属性中使用表达式:

=System.Convert.FromBase64String("http://localhost:5460/api/Report/GetImage")

但这不起作用。如何从 URL 中获取字符串或数组,然后将其显示为图像?

我也尝试过代码块,但是当我尝试

Dim hwr As System.Net.HttpWebRequest
hwr = System.Net.WebRequest.Create("http://localhost:5460/api/Report/GetImage")

我收到错误:

Severity    Code    Description Project File    Line    Suppression State
Warning     [rsRuntimeErrorInExpression] The Value expression for the textrun 'Textbox2.Paragraphs[0].TextRuns[0]' contains an error: 
Insufficient permissions for setting the configuration property 'maximumErrorResponseLength'. (c:\program files (x86)\microsoft visual studio17\sql\common7\ide\commonextensions\microsoft\ssrs\PreviewProcessingService.exe.Config line 42)     C:\Users\Desktop\REP90011\REP90011.rdl  0   

这是在我的本地机器上,而不是在 SSRS 服务器上或通过 IIS。只需通过 VS 2017 中的预览窗格即可。

问题是我需要允许我桌面上文件 RSPreviewPolicy.config 的权限为 'FullTrust' 而不是 'Nothing' 以便能够使用 'System.Net.WebRequest.Create'.

编辑: 我被要求详细说明我的流程是如何工作的,所以这里是:

我有一个网络服务,可以获取图像并将其 returns 作为 base64 字符串。

在报表上放置一个图像对象,将其设置为'Database'、'image/bmp',并将此表达式用作字段:

=Convert.FromBase64String(Code.GetImageString("http://localhost:5460/api/Report/GetImage")

URL 是 returns 字符串的网络服务。

函数 GetImageString 在报表属性的代码部分:

Public Function GetImageString(Url As String) As String
   'create web request
   Dim hwr As System.Net.HttpWebRequest
   'this line is what I needed to change the permissions for
   hwr = System.Net.WebRequest.Create(Url) 
   hwr .Credentials = System.Net.CredentialCache.DefaultCredentials
   'get response from request
   Dim wr As System.Net.WebResponse
   wr = hwr.GetResponse()
   'get stream from response
   Dim sr as System.IO.Stream
   sr = wr.GetResponseStream()
   'read response stream
   Dim read As IO.StreamReader
   read = new IO.StreamReader(sr, System.Text.Encoding.UTF8)
   'convert stream to string
   Dim result as string
   result = read.ReadToEnd
   return result.substring(1, result.length - 2) 'remove first and last characters, it's putting in quotes
 End Function

在 VS 2017 中,这在我的桌面上运行良好。在 VS 2019 中,它在我的桌面上显示一个红色 x,但在部署到服务器时仍然有效。