通过BizTalk编排调用.Net类时出错
我尝试通过 BizTalk 编排调用 .net 类。但是当我将消息发送到 BizTalk 时,它并没有真正调用该类,而是出现以下错误。
有人可以帮忙吗?
xlang/s 引擎事件日志条目:创建 BizTalk_Server_test.BizTalk_Orchestration_1 服务时失败。异常类型:ServiceCreationException 下面是一个堆栈跟踪,标识 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._serviceCreator(Guid& instanceId, Object objCurrMsg) 处 Microsoft.XLANGs.Core.ResourceContainer._allocateResource(Guid&) 处发生异常的位置; 密钥、UInt32 hashKey、ResourceCreator resCreator、对象creationContext)在 Microsoft.XLANGs.Core.ResourceContainer.Dispense(Guid& key、ResourceCreator resCreator、对象creationContext)在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._dispenseService(Guid& instanceId) IBTMessage currMsg) 在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._tryReceiveOneMessage(Boolean&loggingError, Guid&instanceId, IBTMessage currMsg) 在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._receiveOneMessage(Guid&instanceId, Guid&serviceId, IBTMessage currentMsg) )在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession.ReceiveMessages(IBTMessage[] 消息,Int32 firstIdx,Int32 计数)在 Microsoft.BizTalk.XLANGs.BTXEngine.AppDomains.AppDomainRoot.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(对象 objMsg) 在 Microsoft.XLANGs.BizTalk.CrossProcess.AppDomainStubProxy.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(Object msgs) 其他错误信息:无法加载文件或程序集“BizTalk Server 测试,版本 = 1.0.0.0, Culture=neutral, 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, BooleanignoreCase, BooleanreflectionOnly, StackCrawlMarkHandle stackMark, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) 发生异常的位置 System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, BooleanignoreCase, Boolean Microsoft.BizTalk 的 System.RuntimeType.GetType(String typeName, Boolean throwOnError, BooleanignoreCase, Boolean ReflectionOnly, StackCrawlMark& stackMark) 处的 System.Type.GetType(String typeName, Boolean throwOnError) 处的 ReflectionOnly、StackCrawlMark& stackMark、Boolean loadTypeFromPartialName)。 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._createNewService(Guid&) 处的 XLANGs.BTXEngine.BTXServiceStaticState.Resolve() serviceId、Guid& instanceId、BTXServiceStaticState staticState) 在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._createOrReHydrateRealService(Guid& instanceId、IBTMessage currMsg)
I tried to call a .net class through BizTalk orchestration. But when I send the message to the BizTalk, it not really call the class instead got the following error.
Can anyone help ?
xlang/s engine event log entry: Failed while creating a BizTalk_Server_test.BizTalk_Orchestration_1 service. Exception type: ServiceCreationException The following is a stack trace that identifies the location where the exception occured at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._serviceCreator(Guid& instanceId, Object objCurrMsg) at Microsoft.XLANGs.Core.ResourceContainer._allocateResource(Guid& key, UInt32 hashKey, ResourceCreator resCreator, Object creationContext) at Microsoft.XLANGs.Core.ResourceContainer.Dispense(Guid& key, ResourceCreator resCreator, Object creationContext) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._dispenseService(Guid& instanceId, IBTMessage currMsg) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._tryReceiveOneMessage(Boolean& loggedError, Guid& instanceId, IBTMessage currMsg) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._receiveOneMessage(Guid& instanceId, Guid& serviceId, IBTMessage currentMsg) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession.ReceiveMessages(IBTMessage[] messages, Int32 firstIdx, Int32 count) at Microsoft.BizTalk.XLANGs.BTXEngine.AppDomains.AppDomainRoot.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(Object objMsg) at Microsoft.XLANGs.BizTalk.CrossProcess.AppDomainStubProxy.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(Object msgs) Additional error information: Could not load file or assembly 'BizTalk Server test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=56064b11c189a7aa' or one of its dependencies. The system cannot find the file specified. Exception type: FileNotFoundException Source: mscorlib Target Site: Void GetTypeByName(System.String, Boolean, Boolean, Boolean, System.Runtime.CompilerServices.StackCrawlMarkHandle, Boolean, System.Runtime.CompilerServices.ObjectHandleOnStack) The following is a stack trace that identifies the location where the exception occured at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName) at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark) at System.Type.GetType(String typeName, Boolean throwOnError) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXServiceStaticState.Resolve() at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._createNewService(Guid& serviceId, Guid& instanceId, BTXServiceStaticState staticState) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._createOrRehydrateRealService(Guid& instanceId, IBTMessage currMsg)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如消息所述:您的程序集“BizTalk Server test,Version=1.0.0.0”或其依赖项之一似乎不存在于 BizTalk 正在查找的任何参考文件夹中。您是否调查过所需的组件是否已正确部署?
As the message says: it appears that your assembly 'BizTalk Server test, Version=1.0.0.0' or one of its dependencies where not present in any of the reference folders in which BizTalk was looking. Have you investigated whether the required assembly has been properly deployed?
您的 .Net 代码需要位于 GAC(全局程序集缓存)中,以便 BizTalk 的底层 .Net 运行时可以解析完全限定的类型名。
根据 BizTalk 的版本(2010 与更早版本)和当前体系结构(32 位与 64 位),您可以将一个相当简单的构建后任务添加到 Visual Studio 项目中,以自动为您执行此操作。 这是我的一篇文章不久前写过。
Your .Net code needs to be in the GAC (Global Assembly Cache) so the fully qualified typename can be resolved by BizTalk's underlying .Net runtime.
Depending on the version of BizTalk (2010 vs earlier) and your current architecture (32-bit vs 64-bit), there is a fairly simple post-build task you can add to your Visual Studio project to automatically do this for you. Here's a post I wrote a while ago.