名单及;标签Webreporting:导出/打印在IIS服务器上不起作用

名单及;标签Webreporting:导出/打印在IIS服务器上不起作用,iis,asp.net-mvc-5,listlabel,Iis,Asp.net Mvc 5,Listlabel,您好,提前感谢您的帮助 我试图通过JQuery/Ajax将JSON对象发布到ASP.NETMVC服务器。控制器方法应该接受JSON输入,并将其用作List&Label 22的数据提供者。然后生成报告,并将其作为PDF文件提供给用户下载。 因为我希望JSON对象的结构是通用的,所以我不想在ASP.Net中为此请求创建特定的模型,而是将JSON对象作为字符串传递(我知道我可能会遇到一些大小限制,但我稍后会担心:) 以下是我的发帖请求: <script> function getRepo

您好,提前感谢您的帮助

我试图通过JQuery/Ajax将JSON对象发布到ASP.NETMVC服务器。控制器方法应该接受JSON输入,并将其用作List&Label 22的数据提供者。然后生成报告,并将其作为PDF文件提供给用户下载。 因为我希望JSON对象的结构是通用的,所以我不想在ASP.Net中为此请求创建特定的模型,而是将JSON对象作为字符串传递(我知道我可能会遇到一些大小限制,但我稍后会担心:)

以下是我的发帖请求:

<script>

function getReport() {
    //dummy data
    data = { JsonVariable1: 1, JsonVariable2: "JsonVariable2" };
    var dataSource = JSON.stringify(data);

    $.ajax({
        type: "POST",
        dataType: "text",
        url: "@Url.Action("/JsonTest")",
        data: "aDataSource=" + dataSource,
        async: false,
        success: function (result) {
            alert('Success!');
        }
    });
}
在本地,即在我的VisualStudio(2015)开发环境中,这工作正常。但是,当我将代码发布到IIS服务器时,POST请求不会终止。我找到了这条线

vLL.Print();
这就是问题所在。如果我注释掉这一行,请求将按预期终止。此行将生成报告并将其导出为PDF,然后作为下载提供给用户。
我正在运行Windows Server 2012 R2的计算机上使用IIS 8.5和.NET Framework 4.5。已安装打印机驱动程序,常规列表和标签功能正在运行(例如,启动web designer、通过HTML预览报告等)

有人知道我在这里遗漏了什么吗?我不是一名web开发人员,我可能还忘了调整IIS服务器上的一些配置


谢谢

仅仅调用
Print
方法是不够的,因为您需要告诉List&Label在哪里生成报告。我宁愿使用
Export
方法(因为它连接了许多方便的事情,比如关闭文件对话框):

string reportResult = "Report." + Guid.NewGuid() + ".pdf";
string outputFile =  Server.MapPath("~/exports/") + reportResult;
ExportConfiguration exportConfiguration = new ExportConfiguration(LlExportTarget.Pdf, outputFile, mReportRepositoryId);
vLL.Export(exportConfiguration);

然后,您应该在服务器上web应用程序的“导出”路径中找到PDF。要解决此类问题,可以使用提供的调试工具Debwin4。它显示了对API的所有调用以及缺少选项或输入的提示。

谢谢您的回答,我也会尝试一下。另外,我不知道Debwin4,这应该非常有用。我花了更多的时间研究,并提出了这个解决方案:
vLL.ExportOptions.Add(LlExportOption.ExportTarget,“PDF”);添加(LlExportOption.ExportFile,vFilename);添加(LlExportOption.ExportPath,vFilepath);vLL.ExportOptions.Add(LlExportOption.ExportQuiet,“1”)
vLL.Print()这还会生成一个临时PDF。不过,使用export()似乎更简单。很高兴听到您解决了这个问题。是的,Export方法基本上就是执行这些步骤,但是稍微简单一点。
string reportResult = "Report." + Guid.NewGuid() + ".pdf";
string outputFile =  Server.MapPath("~/exports/") + reportResult;
ExportConfiguration exportConfiguration = new ExportConfiguration(LlExportTarget.Pdf, outputFile, mReportRepositoryId);
vLL.Export(exportConfiguration);