0

実稼働 IIS サーバーで突然 "Parameter Not Valid" 例外が発生しました (その後、再起動により例外がクリアされました)。Telerikユーザーの署名を表示するために使用する PictureBox コントロールを含むレポートがあります。署名はSQL Servervarbinary(max) として保存されます。このコードを使用してインポートしました:

SET EmployeeSignature = (SELECT BulkColumn FROM OPENROWSET(
        Bulk 'C:\Signatures\Justin.bmp', SINGLE_BLOB)AS BLOB)
         EmployeeNumber = '999999'

次のように、レポートを pdf としてレンダリングしています。

 public ActionResult PrintPoReport(string id)
    {

        var irs = new InstanceReportSource();
        irs.ReportDocument = new LogisticsReports.PoHeader();
        irs.Parameters.Add(new Parameter("PoID", id));
        Telerik.Reporting.Processing.ReportProcessor rp = new Telerik.Reporting.Processing.ReportProcessor();
        Telerik.Reporting.Processing.RenderingResult result = rp.RenderReport("PDF", irs, null);
        byte[] contents = result.DocumentBytes;
        return File(contents, "application/pdf", "P0 #" + id + ".pdf");

    }

私が読んだすべてのことから、この特定の例外と、さまざまなフレーバーのイメージ ファイル、フォント ファイルなどとの相関関係があるようです。上で述べたように、IIS サーバーの再起動により、今のところ例外が停止しましたが、原因が再発する前に。または、レポートにユーザーの署名を表示するためのより良い方法を見つけてください。助言がありますか?

レポートが機能しなくなると、次の例外が発生します。

ArgumentException: Parameter is not valid.]
   System.Drawing.Image.get_RawFormat() +1624719
   Telerik.Reporting.PictureBox.set_Value(Object value) +145
   LogisticsReports.PoHeader.InitializeComponent() +59097
   ArctecLogisticsWebFiles.Controllers.LogisticsToolsController.PrintPoReport(String id) +64
   lambda_method(Closure , ControllerBase , Object[] ) +127
   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +264
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39
   System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +129
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +826106
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +314
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +825328
   System.Web.Mvc.Controller.ExecuteCore() +159
   System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335
   System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
   System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20
   System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +469
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375
4

1 に答える 1