在服务器上启用模拟时Rotativa无法正常工作

时间:2019-01-17 19:39:03

标签: c# asp.net rotativa

我正在使用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();
}

我在做什么错,为什么这在我的服务器上不起作用,但是在我的本地主机上呢?以及如何在服务器上使用它。

1 个答案:

答案 0 :(得分:0)

尝试以下解决方案之一:

1-转到IIS>“站点”>“身份验证”,单击“ ASP.NET模拟”并禁用它。

2-如果要调用脚本或文件或其他内容,请指定使用的协议:

src="//api.mydomain.com/?????

收件人:

src="http://api.mydomain.com/?????

3-在“应用程序池”的配置中,“过程模型”下有一个选项“加载用户配置文件”。默认情况下为False,将其设置为true。