Biztalk 无法加载文件或程序集
我想归档DESADV的pdf版本,因此我通过Biztalk自定义XSLT映射从原始XML文件创建Html页面,并通过Pechkin.Synchronized将其呈现为pdf(wkhtmltopdf的包装) 这在我的解决方案中很有魅力,但一旦我尝试将解决方案部署到QA系统,biztalk就一直唠叨着找不到Pechkin库。 Libs是通过“gacutil-I”部署的,我甚至从源代码构建它,并使用Biztalk签名密钥对其进行签名,并将构建模式从x86更改为“任意CPU”。 我向Helper类添加了所有需要的DLL,并手动部署了它们,但BizTalk无法访问该库。请帮帮我,我已经努力了好几天,却没有取得任何进展,这让我很生气。 我甚至很难调试它为什么不能加载dll 我对BizTalk不是很熟练,一直认为GAC中的DLL可以访问BizTalk 我还构建了一个控制台应用程序,该应用程序直接引用GAC_MSIL中的DLL,并使用我在BizTalk Solutions helper类中编写的确切代码呈现htmlBiztalk 无法加载文件或程序集,biztalk,biztalk-2013,Biztalk,Biztalk 2013,我想归档DESADV的pdf版本,因此我通过Biztalk自定义XSLT映射从原始XML文件创建Html页面,并通过Pechkin.Synchronized将其呈现为pdf(wkhtmltopdf的包装) 这在我的解决方案中很有魅力,但一旦我尝试将解决方案部署到QA系统,biztalk就一直唠叨着找不到Pechkin库。 Libs是通过“gacutil-I”部署的,我甚至从源代码构建它,并使用Biztalk签名密钥对其进行签名,并将构建模式从x86更改为“任意CPU”。 我向Helper类添加了
即使这也不能被认为是一个真正的答案,但它以某种方式解决了问题 正如已经有人提到的,DLL依赖于其他LIB。再加上我无法将DLL部署到gac,对这个主题也没有更深入的理解,我只是选择了另一个库,因为这已经花费了很多时间。嗯 我选择共享软件,他们有一个简单有效的nuget软件包。(我喜欢)。总体渲染速度没有那么快,但我想最后更重要的是保持BizTalk与您的项目兼容 如果有人偶然发现了这一点:
using System;
using Microsoft.XLANGs.BaseTypes;
using System.IO;
namespace BIS.CLC.DESADV.Helper
{
public class HtmlHelper
{
public string xTractStringFromMessage(XLANGMessage message)
{
string retVal = string.Empty;
try
{
using (var reader = new StreamReader(message[0].RetrieveAs(typeof(Stream)) as Stream))
{
retVal = reader.ReadToEnd();
}
}
catch (Exception ex)
{
Exception logex = new Exception("BIS.CLC.DESADV.Helper.HtmlHelper.xtractStringFromMsg: string extraction failed" + ex.Message.ToString() + ex.InnerException.ToString());
BIS.Common.Helper.StaticClass.writeEventLog_BizTalk(logex.Message.ToString(), "BisLog");
throw ex;
}
finally
{
message.Dispose();
}
return retVal;
}
public void renderPDFfromHTML(string html, string targetPath)
{
try
{
//do things
SelectPdf.HtmlToPdf converter = new SelectPdf.HtmlToPdf();
SelectPdf.PdfDocument doc = converter.ConvertHtmlString(html);
doc.Save(new Uri(targetPath).LocalPath.Replace(".XML", ".PDF"));
doc.Close();
}
catch (Exception ex)
{
Exception logex = new Exception("BIS.CLC.DESADV.Helper.HtmlHelper.renderPDFfromHTML: render pdf failed " + ex.Message.ToString() + ex.InnerException.ToString());
BIS.Common.Helper.StaticClass.writeEventLog_BizTalk(logex.Message.ToString(), "BisLog");
throw ex;
}
}
}
}
只是一次精神检查;将程序集添加到GAC后,是否重新启动了主机(如果它在独立主机中运行,则重新启动IIS)?这是必须的……无数次;)是否在比业务流程更高的.net版本上生成dll?请在visual studio->清理解决方案->重新启动visual studio->重新添加dll引用中删除引用。请确保您只有此dll,而没有其他版本在其他地方浮动。您确定Pechkin程序集没有自己的引用吗?