当前位置: 首页 > 知识库问答 >
问题:

GDI中出现一般性错误。在Azure Webapp上

荆钱明
2023-03-14

我正在使用spire lib为用户创建pdf文件。

    string userId = User.Identity.GetUserId();
        User trainee = _userDAL.GetUserByIdentityId(userId);

        // Get the Employee scores
        string fileNameTemplate = Server.MapPath(Url.Content("~/assets/cert1-{0}-{1}.docx"));
        string nnn = string.Format("cert1-{0}-{1}.pdf", trainee.StaffID, DateTime.Now.Millisecond);
        string serverPath = MainConfig.P_EXPORT;
        var folder = Server.MapPath(serverPath);

使用(Documentdocument_test=new Document()){document_test.LoadFromFile(fileNameTemboard);

            //Update Text of Title
            document_test.Replace("#trainee_name#", trainee.Name, false, true);
            document_test.Replace("#course_name#", "Test", false, true);
            document_test.Replace("#date_info#", DateTime.Today.ToShortDateString(), false, true);

            document_test.SaveToFile(nnn, Spire.Doc.FileFormat.PDF, System.Web.HttpContext.Current.Response, HttpContentType.Attachment);
        }

该代码在本地开发机器上工作得很好,但当我将其上传到Azure web app时,我得到了一个通用错误:GDI中出现了一个一般错误。

堆栈跟踪:

[external exception(0x 80004005):GDI中出现一般性错误。]系统。绘图.图像.图元文件..ctor(Stream stream,IntPtr referenceHdc,RectangleF frameRect,MetafileFrameUnit frameUnit,EmfType type,String description) 226801系统。绘图.图像.图元文件..ctor(Stream stream,IntPtr referenceHdc,RectangleF frameRect,MetafileFrameUnit frameUnit,EmfType类型)34 sprᲦ.ᜀ(PageSetup A_0,图像类型A_1,内存流A_2,Int32 A_3,图形单元A_4) 255 sprᲦ.ᜀ(PageSetup A_0,图像类型A_1,内存流A_2,Int32 A_3) 19 sprᲦ.᜔() 224 sprᲦ.ᜁ(IDocument A_0) 234 spr᧤.ᜀ(document a _ 0)93 spire.doc.document.ᜀ(stream a _ 0)94尖顶。Doc.Document.SaveToFile(Stream流,FileFormat文件格式)289 Spire。Doc.Document.SaveToFile(字符串文件名,文件格式FileFormat,HttpResponse响应,HttpContentType内容类型)673 LMSv1。controllers . display controller . download certification(Nullable < code > 1 tid,Nullable 1 Eid)616 lambda _ method(Closure,ControllerBase,Object[] ) 146 System。web . MVC . actionmethodcdispatcher . execute(controller base controller,Object[] parameters) 14系统。web . MVC . reflectedactiondescriptor . execute(controller context controller context,IDictionary2参数)167系统。web . MVC . controlleractioninvoker . invokeactionmethod(controller context controller context,action descriptor action descriptor,IDictionary2参数)27系统。web . MVC . async . asynccontrolleractioninvoker . b _ _ 39(IAsyncResult async result,action invocation innerInvokeState)22系统。web . MVC . async . wrappedasync result < code > 2。called delegate(IAsyncResult async result)29系统。web . MVC . async . wrappedasynchresultbase 1。End() 49

共有3个答案

东门越
2023-03-14

粗略猜测:您隐式引用了另一个安装在GAC中或未设置为本地复制的dll。因此,尽管你编译的大部分代码都部署在azure上,但这个神秘的dll并没有部署在Azure上。

谭泳
2023-03-14

似乎已使用以下代码解决了此问题。请参阅此处的类似帖子和解决方案。

Document doc = new Document();
doc.LoadFromFile(fileName);
ToPdfParameterList tpl = new ToPdfParameterList{

    UsePSCoversion = true;           
    //azure          
};  
doc.SaveToFile(resultName);
席言
2023-03-14

Azure Web Apps 运行的沙盒有一些限制,这些限制会阻止某些调用,这可能是你在使用 GDI 时遇到的问题。

您可以找到有关这些沙盒限制的更多信息,这些沙盒限制 https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#win32ksys-user32gdi32-restrictions。

 类似资料:
  • 本文向大家介绍.net生成缩略图及水印图片时出现GDI+中发生一般性错误解决方法,包括了.net生成缩略图及水印图片时出现GDI+中发生一般性错误解决方法的使用技巧和注意事项,需要的朋友参考一下   使用该方法读取图片时。导致图片文件被死锁无法释放资源,导置重写资源时出现一般性错误。   解决方法将代码改成以下代码 非常简单实用吧,有相同问题的小伙伴可以参考下

  • 简介 正如大家(应该)知道的,在开发过程中,错误处理 是非常重要的部分。它不仅向使用者表明他/她/它所请求的页面是不可用的, 也是一种透过提供一个 HTTP 错误状态来通知机器 (浏览器等)发生了什幺事情的方式。 程式码错误 FuelPHP 的内部错误处理是基于例外。这可以让你在你的程式码中捕捉它们, 因此你的应用程序可以优雅地处理发生的例外,且使用者可以继续使用应用程序。 FuelPHP 也改变

  • 问题内容: 我收到了这个令人讨厌的错误,尽管我知道为什么要得到它,但我终生无法找到解决方案。 查询包含占位符()。但是要添加这些LIMIT占位符,我需要使用手动方法(),因为否则引擎会将它们转换为字符串。 我没有收到无效的参数数量错误,因此所有占位符均已正确绑定(我认为)。 查询: 除最后两个LIMIT(我与之手动绑定)外,所有占位符值均位于$ criteria中。 问题答案: 您不能使用 和 。

  • 我有一些问题Laravel迁移。我的文章和标签之间有多对多的关系。'article_tag'迁移: 标签迁移: “第条移徙: 我的控制台日志: illumb\Database\QueryException:SQLSTATE[HY000]:一般错误:1 near“)”:语法错误(SQL:创建表“article_-tag”(“article_-id”integer不为null,“tag_-id”int

  • 我有一个相当大(>2.5GB)的h2数据库文件。驱动程序版本是1.4.182。一切都很好,但最近数据库异常停止工作: 问题发生在我的应用程序和使用H2 web前端。我已经尝试过类似问题的解决方案,但我不能将H2降级到1.3.x,因为它不能读取1.4.x数据库文件。 我的问题是: 编辑2:使用恢复工具的结果: 我还注意到另外两个文件(.txt和.sql)已经创建,但它们似乎不包含数据。

  • 我在尝试使用JAXB封送时遇到以下异常。 以下是堆栈跟踪: 键入AORAGENT2TTWSREQUEST。JAVA 我参考了下面的链接,仍然不知道到底是什么问题: JAXB非法注释例外