【问题标题】:references on an aspx page, ashx page causing error in a report viewer declarationaspx 页面上的引用,ashx 页面导致报告查看器声明中的错误
【发布时间】:2014-11-29 12:37:56
【问题描述】:

我已经使用 VB.NET 构建了一个 Web Matrix 站点。我添加了一个名为reports.aspx 的文件来处理一些报告。具体来说,它使用 Neodynamic Web Client Print SDK 将报告从 SSRS 保存为 PDF,然后重定向到一个名为 reports.ashx 的处理程序文件,该文件实际处理打印。

reports.aspx 中的代码

<%@ Page Language="VB" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="Microsoft.Reporting.WebForms" %>
<%-- Register the WebClientPrint script code --%>
 <%=Neodynamic.SDK.Web.WebClientPrint.CreateScript(MyUtils.GetWebsiteRoot() + "reports.ashx")%>

<!DOCTYPE html>

<script language="VB" runat="server">
Private Sub Page_Load(sender As Object, e As EventArgs)

    Dim reportname As String
    Dim paramBlock As New ReportParameter()
    Dim paramID As New ReportParameter()

    reportname = Request("reportname")
    Dim v As New ReportViewer
    v.ProcessingMode = ProcessingMode.Remote
    Dim serverreport As New ServerReport
    serverreport = v.ServerReport
    serverreport.ReportServerUrl = New Uri("http://websql1.core.com/Reports")
    serverreport.ReportPath = "/Reports/Aramid/Sheeter/" & reportname

    Select Case reportname

    Case Is = "NomexBlockCard" Or "NomexBlockLabel" Or "NomexInternalLabel"
        paramBlock.Name = "paramBlock"
        paramBlock.Values.Add(Request("paramBlock"))
        Dim parameters() As ReportParameter = {paramBlock}
    Case Is = "NomexRoutingData"
        paramID.Name = "paramID"
        paramID.Values.Add(Convert.ToInt32(Request("paramID")))
        Dim parameters() As ReportParameter = {paramID}
    End Select

    serverreport.SetParameters(parameters)

    Save(serverreport, "~/Files/")

    'now print
    Response.Redirect("reports.ashx?fileName=" & reportname)

End Sub

Public Sub Save(ByVal sr As ServerReport, ByVal savePath As String)
    Dim Bytes() As Byte = sr.Render("PDF", "", Nothing, Nothing, Nothing, Nothing, Nothing)
    Using Stream As New FileStream(savePath, FileMode.Create)
        Stream.Write(Bytes, 0, Bytes.Length)
    End Using
End Sub


</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>

</body>
</html>

reports.ashx 中的代码

<%@ WebHandler Language="VB" Class="reports" %>

Imports System
Imports System.Web
Imports Neodynamic.SDK.Web

Public Class reports : Implements IHttpHandler

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

    Dim useDefaultPrinter As Boolean = True '(context.Request("useDefaultPrinter") = "checked")
    Dim printerName As String = context.Server.UrlDecode(context.Request("printerName"))

    Dim fileName As String = context.Server.UrlDecode(context.Request("fileName"))
    Dim filePath As String = "~/Files/"

    If (filePath <> Nothing) Then

        Dim file As New PrintFile(context.Server.MapPath(filePath), fileName)
        Dim cpj As New ClientPrintJob()
        cpj.PrintFile = file
        If (useDefaultPrinter OrElse printerName = "null") Then
            cpj.ClientPrinter = New DefaultPrinter()
        Else
            cpj.ClientPrinter = New InstalledPrinter(printerName)
        End If
        cpj.SendToClient(context.Response)

    End If

End Sub

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
    Get
        Return False
    End Get
End Property

End Class

当我打开 Visual Studio 进行构建和发布时,出现以下错误。

从模块 system.web 的程序集中导入类型 system.web.httpcontextbase 失败

查看reports.aspx中的代码,行下有错误

Dim v as New ReportViewer

错误更正选项说“需要引用 System.Web.Extensions 版本 = 3.5.0.0,.... 包含已实现的接口 System.Web.UI.IScriptControl。向您的项目添加一个"

我引用 System.Web、System.Web.Extensions 和 System.Web.Abstractions。

针对 .NET 4

请帮助我理解这个问题或需要查看的内容。

谢谢!

【问题讨论】:

    标签: asp.net .net vb.net razor


    【解决方案1】:

    原来是一件非常简单的事情。当我在 Webmatrix 中启动该项目时,随着它的发展,我将其移至 Visual Studio 解决方案。当我将其移至解决方案时,它会将目标框架更改为 2.0 而不是 4。

    奇怪。将目标改回 4,更新了引用,一切顺利!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多