通过 BizTalk 编排调用 .Net 类的错误
Posted
技术标签:
【中文标题】通过 BizTalk 编排调用 .Net 类的错误【英文标题】:Error of calling .Net class through BizTalk orchestration 【发布时间】:2011-03-10 22:49:11 【问题描述】:我尝试通过 BizTalk 业务流程调用 .net 类。但是当我将消息发送到 BizTalk 时,它并没有真正调用该类,而是出现以下错误。
谁能帮忙?
xlang/s 引擎事件日志条目:创建 BizTalk_Server_test.BizTalk_Orchestration_1 服务时失败。异常类型:ServiceCreationException 下面是一个堆栈跟踪,用于标识 Microsoft.XLANGs.Core.ResourceContainer._allocateResource(Guid& 键的 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._serviceCreator(Guid& instanceId, Object objCurrMsg) , UInt32 hashKey, ResourceCreator resCreator, Object creationContext) 在 Microsoft.XLANGs.Core.ResourceContainer.Dispense(Guid& key, ResourceCreator resCreator, Object creationContext) 在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._dispenseService(Guid& instanceId, IBTMessage currMsg) 在Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._receiveOneMessage(Guid& instanceId, Guid& serviceId, IBTMessage currentMsg) 在 Microsoft.BizTalk.XLANGs 上的 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._tryReceiveOneMessage(Boolean& loggedError, Guid& instanceId, IBTMessage currMsg)。 BTXEngine.BTXSession.ReceiveMessages(IBTMessage[] messages, Int32 firstIdx, Int32 count) 在 Microsoft.BizTalk.XLANGs.BTXEngin e.AppDomains.AppDomainRoot.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(Object objMsg) 在 Microsoft.XLANGs.BizTalk.CrossProcess.AppDomainStubProxy.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(Object msgs) 其他错误信息: 无法加载文件或程序集“BizTalk Server 测试,版本 = 1.0.0.0,文化 = 中性,PublicKeyToken = 56064b11c189a7aa”或其依赖项之一。该系统找不到指定的文件。异常类型:FileNotFoundException 源:mscorlib 目标站点:Void GetTypeByName(System.String, Boolean, Boolean, Boolean, System.Runtime.CompilerServices.StackCrawlMarkHandle, Boolean, System.Runtime.CompilerServices.ObjectHandleOnStack) System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) 在 System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean) 发生异常的位置在 Microsoft.BizTalk.XLANGs 的 System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectOnly, StackCrawlMark & stackMark) 中的 ReflectOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName)。 BTXEngine.BTXServiceStaticState.Resolve() 在Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._createNewService(Guid& serviceId, Guid& instanceId, BTXServiceStaticState staticState) 在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._createOrRehydrateRealService(Guid& instanceId, IBTMessage currMsg)
【问题讨论】:
【参考方案1】:如消息所述:您的程序集“BizTalk Server test, Version=1.0.0.0”或其依赖项之一似乎不存在于 BizTalk 正在查找的任何参考文件夹中.您是否调查过所需的程序集是否已正确部署?
【讨论】:
【参考方案2】:您的 .Net 代码需要位于 GAC(全局程序集缓存)中,以便 BizTalk 的底层 .Net 运行时可以解析完全限定的类型名。
根据 BizTalk 的版本(2010 与更早版本)和您当前的体系结构(32 位与 64 位),您可以将一个相当简单的构建后任务添加到您的 Visual Studio 项目中以自动执行此操作你。 Here's a post I wrote a while ago.
【讨论】:
以上是关于通过 BizTalk 编排调用 .Net 类的错误的主要内容,如果未能解决你的问题,请参考以下文章