我正在使用Rotativa从视图生成PDF。它可以在我的本地主机上运行,但是当我推送到服务器时,它根本不起作用。服务器已启用Windows身份验证和模拟功能,这是我需要为此站点提供的。
这是我尝试在服务器上运行代码时遇到的错误
Qt:无法初始化OLE(错误80070005)错误:加载失败 页 https://api.mydomain.com/Reports/RedBluePDF?community=CommunityName&procedure=GetTasks (有时它将仅用于忽略此错误, --load-error-handling ignore)由于http错误而退出代码1:1003
这是我的代码:
public byte[] getReportsPDF(string community, string procedure)
{
byte[] pdfBytes = new byte[] { };
RouteData route = new RouteData();
route.Values.Add("controller", "SiteSuperReports");
route.Values.Add("action", "RedBluePDF");
this.ControllerContext = new ControllerContext(new HttpContextWrapper(System.Web.HttpContext.Current), route, this);
if (procedure == "GetProductionTasks")
{
var actionPDF = new Rotativa.ActionAsPdf("RedBluePDF", new { community = community, procedure = procedure })
{
PageSize = Size.A4,
PageOrientation = Rotativa.Options.Orientation.Landscape,
PageMargins = { Left = 1, Right = 1 }
};
try
{
pdfBytes = actionPDF.BuildFile(ControllerContext);
}
catch(Exception e)
{
Console.Write(e.Message.ToString());
}
}
return pdfBytes;
}
这是RedBluePDF方法,它只返回一个View:
public ActionResult RedBluePDF(string community, string procedure) {
return View();
}
我在做什么错,为什么这在我的服务器上不起作用,但是在我的本地主机上呢?以及如何在服务器上使用它。
答案 0 :(得分:0)
尝试以下解决方案之一:
1-转到IIS>“站点”>“身份验证”,单击“ ASP.NET模拟”并禁用它。
2-如果要调用脚本或文件或其他内容,请指定使用的协议:
src="//api.mydomain.com/?????
收件人:
src="http://api.mydomain.com/?????
3-在“应用程序池”的配置中,“过程模型”下有一个选项“加载用户配置文件”。默认情况下为False,将其设置为true。