web-services - JobTask 导出时随机“目标文件的扩展名可能被阻止”
问题描述
我在应用程序中使用的 Navision 2016 ODATA Web 服务存在继承问题。
通常它运行良好,但随机(大约每 100 次运行 1 次)它会出现以下堆栈日志:
Server instance: NAV Tenant ID: User: Type: Microsoft.Dynamics.Nav.Types.Exceptions.NavNCLXmlPortNodeProcessException SuppressMessage: False SuppressExceptionCreatedEvent: False FatalityScope: None Message: Could not process node JobTask. The following error occurred: The file that you are trying to create cannot be created. The destination file has an extension that may be blocked. Contact your system administrator. StackTrace:
at Microsoft.Dynamics.Nav.Runtime.NavXmlPortExporter.TryProcessElement(NavXmlPortNode node)
at Microsoft.Dynamics.Nav.Runtime.NavXmlPortExporter.LoopElementChildren(NavXmlPortNode node)
at Microsoft.Dynamics.Nav.Runtime.NavXmlPortExporter.ProcessTextElement(NavXmlPortTextNode node)
at Microsoft.Dynamics.Nav.Runtime.NavXmlPortExporter.ProcessElement(NavXmlPortNode node)
at Microsoft.Dynamics.Nav.Runtime.NavXmlPortExporter.TryProcessElement(NavXmlPortNode node)
at Microsoft.Dynamics.Nav.Runtime.NavXmlPortExporter.Export()
at Microsoft.Dynamics.Nav.Runtime.NavXmlPort.Export(DataError errorLevel)
at Filter.InvokeWithFilter(NavMethodScope )
at Microsoft.Dynamics.Nav.Runtime.NavMethodScope.Run()
at Microsoft.Dynamics.Nav.BusinessApplication.Codeunit50005.ExportJobTask(NavXmlPortHandle jobTaskXML) --- End of stack trace from previous location where exception was thrown ---
at Microsoft.Dynamics.Nav.Runtime.TaskHelper.Rethrow(Exception exception)
at Microsoft.Dynamics.Nav.Service.WebServices.ServiceBroker.Invoke(Boolean isSoapMessage, Uri url, XmlReader input, TextWriter output, NavUserAuthentication navUserAuth)
at Microsoft.Dynamics.Nav.Service.WebServices.NavWebService.<>c__DisplayClass5.<>c__DisplayClass7.<ProcessMessage>b__3()
at Microsoft.Dynamics.Nav.Service.WebServices.Disposer.Scope(Code code)
at Microsoft.Dynamics.Nav.Service.WebServices.WCFUtil.GetPopulatedMemoryStream(StreamFillingCallback callback)
at Microsoft.Dynamics.Nav.Service.WebServices.NavWebService.ProcessMessage(Message message)
at SyncInvokeProcessMessage(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) Source: Microsoft.Dynamics.Nav.Ncl HResult:
-2146233088
---------------------------------- Type: Microsoft.Dynamics.Nav.Types.Exceptions.NavNCLFileLoadException SuppressMessage: False SuppressExceptionCreatedEvent: False FatalityScope: None Message: Could not process node JobTask. The following error occurred: The file that you are trying to create cannot be created. The destination file has an extension that may be blocked. Contact your system administrator. StackTrace:
at Microsoft.Dynamics.Nav.Runtime.NavFile.InternalCreateOrOpen(DataError errorLevel, FileOption options, Boolean checkFileType)
at Microsoft.Dynamics.Nav.Runtime.NavFile.ALCreate(DataError errorLevel, String createName, TextEncoding encoding)
at Microsoft.Dynamics.Nav.Runtime.NavBLOB.ALExport(String fileName)
at Microsoft.Dynamics.Nav.BusinessApplication.XMLport50000.Job_Task_a45_Exporta58a58OnAfterGetRecord_Scope.OnRun()
at Filter.InvokeWithFilter(NavMethodScope )
at Microsoft.Dynamics.Nav.Runtime.NavMethodScope.Run()
at Microsoft.Dynamics.Nav.BusinessApplication.XMLport50000.Job_Task_a45_Exporta58a58OnAfterGetRecord()
at Microsoft.Dynamics.Nav.Runtime.NavXmlPortTableNode.FireExportTrigger(NavTrigger trigger)
at Microsoft.Dynamics.Nav.Runtime.NavXmlPortExporter.ProcessTableElement(NavXmlPortTableNode node)
at Microsoft.Dynamics.Nav.Runtime.NavXmlPortExporter.ProcessElement(NavXmlPortNode node)
at Microsoft.Dynamics.Nav.Runtime.NavXmlPortExporter.TryProcessElement(NavXmlPortNode node) Source: Microsoft.Dynamics.Nav.Ncl HResult: -2146233088
你知道这个错误的根源是什么吗?
解决方案
也许它选择的随机文件名与服务层配置中禁止的文件扩展名列表相匹配?可以解释为什么它如此随机。
尝试暂时禁用此选项以查看它是否可以解决问题。我认为这是一个平台错误,因此应该向 Microsoft 报告。
默认情况下会阻止以下扩展:
ade;adp;app;asp;bat;bas;chm;cmd;com;cpl;csh;exe;fxp;gadget;hlp;hta;inf;ins;isp;its;js;jse;ksh;lnk;mad; maf;mag;mam;maq;mar;mas;mat;mau;mav;maw;mda;mdb;mde;mdt;mdw;mdz;msc;msi;msp;mst;ops;pcd;pif;prf;prg; pst;reg;scf;scr;sct;shb;shs;url;vb;vbe;vbs;vsmacros;vss;vst;vsw;ws;wsc;wsf;wsh
推荐阅读
- vba - VBA:将所有工作表文本转换为数字
- java - 如何在页面对象模型上传递变量值
- sql - 在 SQL Server 中使用 JOIN 排除记录
- android - Edujugon 推送通知
- javascript - 在 jquery 中使用“this”设置图像 src
- html - 如何在 html.beginform 中绑定 foreach 方法
- javascript - 当我的异步函数前面没有等待时,try catch 块会捕获错误吗?
- sql - 无法找出转换 sql 附近的错误
- ios - Swift 4 如何从日历中获取所有事件?
- java - 在 ubntu(linux) 中找不到 Firefox 二进制路径