列表标签 Web 报告:Export/Printing 在 IIS 服务器上不起作用
List&Label Webreporting: Export/Printing does not work on IIS Server
您好,在此先感谢您的帮助,
我正在尝试通过 JQuery/Ajax post 一个 JSON-Object 到 ASP.Net MVC-Server。 Controller 方法应该采用 JSON 输入并将其用作 List&Label 22 的 DataProvider。然后应生成报告并将其作为 PDF 文件提供给用户以供下载。
因为我希望 JSON 对象的结构是通用的,所以我不想在 ASP.Net 中为此请求创建特定模型,而是将 JSON 对象作为string(我知道我可能 运行 受到一些大小限制,但我稍后会担心 :))。
这是我的 POST 请求:
<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!');
}
});
}
这是控制器方法:
[HttpPost]
public ActionResult JsonTest(string aDataSource) {
combit.ListLabel22.ListLabel vLL = new combit.ListLabel22.ListLabel();
JsonDataProvider vJsonProvider = new JsonDataProvider(aDataSource);
vLL.FileRepository = GetCurrentRepository();
vLL.AutoProjectFile = mReportRepositoryId;
vLL.DataSource = vJsonProvider;
vLL.ExportOptions.Add(LlExportOption.ExportTarget, "PDF");
vLL.Print(); //This causes problem on published server
return Json("Success");
}
本地,即在我的 Visual Studio (2015) 开发环境中,这工作正常。但是,当我将代码发布到我的 IIS 服务器时,POST-请求不会终止。我找到了这条线
vLL.Print();
成为问题所在。如果我注释掉这一行,请求将按预期终止。此行生成报告并将其导出为 PDF 文件,该 PDF 文件将作为下载提供给用户。
我在机器 运行ning Windows Server 2012 R2 上使用 IIS 8.5 和 .NET-Framework 4.5。打印机驱动程序已安装,常规的列表和标签功能正在运行(例如启动网页设计器、通过 HTML 预览报告等)。
有谁知道我在这里遗漏了什么?我不是网络开发人员,我也可能忘记调整 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 应用程序的 "exports" 路径中找到您的 PDF。要解决此类问题,您可以使用提供的调试工具 Debwin4。它会向您显示对 API 的所有调用以及缺少选项或输入的提示。
您好,在此先感谢您的帮助,
我正在尝试通过 JQuery/Ajax post 一个 JSON-Object 到 ASP.Net MVC-Server。 Controller 方法应该采用 JSON 输入并将其用作 List&Label 22 的 DataProvider。然后应生成报告并将其作为 PDF 文件提供给用户以供下载。 因为我希望 JSON 对象的结构是通用的,所以我不想在 ASP.Net 中为此请求创建特定模型,而是将 JSON 对象作为string(我知道我可能 运行 受到一些大小限制,但我稍后会担心 :))。
这是我的 POST 请求:
<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!');
}
});
}
这是控制器方法:
[HttpPost]
public ActionResult JsonTest(string aDataSource) {
combit.ListLabel22.ListLabel vLL = new combit.ListLabel22.ListLabel();
JsonDataProvider vJsonProvider = new JsonDataProvider(aDataSource);
vLL.FileRepository = GetCurrentRepository();
vLL.AutoProjectFile = mReportRepositoryId;
vLL.DataSource = vJsonProvider;
vLL.ExportOptions.Add(LlExportOption.ExportTarget, "PDF");
vLL.Print(); //This causes problem on published server
return Json("Success");
}
本地,即在我的 Visual Studio (2015) 开发环境中,这工作正常。但是,当我将代码发布到我的 IIS 服务器时,POST-请求不会终止。我找到了这条线
vLL.Print();
成为问题所在。如果我注释掉这一行,请求将按预期终止。此行生成报告并将其导出为 PDF 文件,该 PDF 文件将作为下载提供给用户。
我在机器 运行ning Windows Server 2012 R2 上使用 IIS 8.5 和 .NET-Framework 4.5。打印机驱动程序已安装,常规的列表和标签功能正在运行(例如启动网页设计器、通过 HTML 预览报告等)。
有谁知道我在这里遗漏了什么?我不是网络开发人员,我也可能忘记调整 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 应用程序的 "exports" 路径中找到您的 PDF。要解决此类问题,您可以使用提供的调试工具 Debwin4。它会向您显示对 API 的所有调用以及缺少选项或输入的提示。