SaxonCS在Docker容器中处理XSLT时的URI解析异常问题求助
SaxonCS在Docker容器中处理XSLT时的URI解析异常问题求助
大家好,我最近碰到个头疼的问题,想请各位帮忙分析下:我用.NET/C#写了个基于SaxonCS做XSLT处理的组件,在Windows主机应用里跑起来完全正常,但放到Docker容器里运行时,就出现了URI解析相关的异常。
先贴一下我的核心代码片段:
processor = new Processor(configStream, new Uri("file://")); uri = new Uri(new FileInfo(styleSheetPath).FullName); try { var compiler = processor.NewXsltCompiler(); using FileStream styleSheetStream = new(styleSheetPath, FileMode.Open, FileAccess.Read); Executable = compiler.Compile(styleSheetStream, uri); } catch (Exception ex) { // 这里捕获到了异常 }
我对比了两种环境下生成的URI:
- Windows主机上,生成的URI是:
file:///C:/[...Path to XSLT...]/Mapping.xslt,完全正常运行 - Docker容器里,生成的URI是:
file:///app/[...Path to XSLT...]/Mapping.xslt,看起来也是标准的绝对文件URI对吧?
但在Docker环境里,运行时直接抛出了这个异常:
System.InvalidOperationException: This operation is not supported for a relative URI.
我实在搞不懂,这两个URI明明都是绝对路径,为啥Docker里会报相对URI的错误?现在想找个能同时兼容Windows和Docker两种环境的解决办法,麻烦各位支支招!
内容来源于stack exchange
相关产品推荐
相关产品推荐

