在服务器上启用模拟时 Rotativa 不工作
Rotativa not working when impersonate enabled on server
我正在使用 Rotativa 从视图生成 PDF。它在我的本地主机上工作,但是当我推送到我的服务器时它根本不起作用。服务器启用了 Windows 身份验证和模拟,我需要为此站点启用。
这是我尝试 运行 服务器上的代码
时遇到的错误
Qt: Could not initialize OLE (error 80070005) Error: Failed loading
page
https://api.mydomain.com/Reports/RedBluePDF?community=CommunityName&procedure=GetTasks
(sometimes it will work just to ignore this error with
--load-error-handling ignore) Exit with code 1 due to http error: 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 方法,这只是 returns 一个视图:
public ActionResult RedBluePDF(string community, string procedure) {
return View();
}
我做错了什么,为什么这在我的服务器上不起作用,但在我的本地主机上却起作用?以及如何让它在我的服务器上运行。
尝试以下解决方案之一:
1- 转到 IIS > 站点 > 身份验证,单击 "ASP.NET Impersonation" 并禁用它。
2- 如果您要调用脚本或文件或其他任何内容,请指定使用的协议:
src="//api.mydomain.com/?????
至:
src="http://api.mydomain.com/?????
3- 在您的应用程序池配置中,在进程模型下,有一个选项 "Load User Profile"。默认为False,设置为true。
我正在使用 Rotativa 从视图生成 PDF。它在我的本地主机上工作,但是当我推送到我的服务器时它根本不起作用。服务器启用了 Windows 身份验证和模拟,我需要为此站点启用。
这是我尝试 运行 服务器上的代码
时遇到的错误Qt: Could not initialize OLE (error 80070005) Error: Failed loading page https://api.mydomain.com/Reports/RedBluePDF?community=CommunityName&procedure=GetTasks (sometimes it will work just to ignore this error with --load-error-handling ignore) Exit with code 1 due to http error: 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 方法,这只是 returns 一个视图:
public ActionResult RedBluePDF(string community, string procedure) {
return View();
}
我做错了什么,为什么这在我的服务器上不起作用,但在我的本地主机上却起作用?以及如何让它在我的服务器上运行。
尝试以下解决方案之一:
1- 转到 IIS > 站点 > 身份验证,单击 "ASP.NET Impersonation" 并禁用它。
2- 如果您要调用脚本或文件或其他任何内容,请指定使用的协议:
src="//api.mydomain.com/?????
至:
src="http://api.mydomain.com/?????
3- 在您的应用程序池配置中,在进程模型下,有一个选项 "Load User Profile"。默认为False,设置为true。