Symptoms
Consider the following scenario:
-
You have a computer that is running on a double-byte character set (DBCS) language version of a Windows operating system. For example, the computer is running the simplified Chinese version of Windows Server 2003.
-
You create a Microsoft BizTalk project that is based on the Microsoft .NET Framework 2.0.
-
The BizTalk project contains a BizTalk orchestration. The BizTalk orchestration includes a transform shape to transform a map.
-
You deploy the BizTalk project, and you start the BizTalk orchestration.
In this scenario, an event that resembles the following is intermittently logged in the Application log:
Event Type: Error
Event Source: XLANG/s Event Category: None Event ID: 10034 Description: Uncaught exception (see the 'inner exception' below) has suspended an instance of service 'BizTalk_orchestration_name'. The service instance will remain suspended until administratively resumed or terminated. If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception. InstanceId: Instance_ID Shape name: Shape_name ShapeId: Shape_ID Exception thrown from: segment n, progress n Inner exception: Error encountered while executing the transform project_name.map_name. Error: Unable to create the transform. Exception type: XTransformationFailureException Source: Microsoft.XLANGs.Engine Target Site: Void ApplyTransform(System.Type, System.Object[], System.Object[])The following is a stack trace that identifies the location where the exception occurred:
at Microsoft.XLANGs.Core.Service.ApplyTransform(Type mapRef, Object[] outParams, Object[] inParams)
at DMSPurchase_Orchestration.Orch_DMSPurchOrder.segment1(StopConditions stopOn) at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp) Additional error informationCannot access a closed resource set.
Exception type: ObjectDisposedException Source: mscorlib Target Site: System.Object GetObject(System.String, Boolean, Boolean)The following is a stack trace that identifies the location where the exception occurred:
at System.Resources.RuntimeResourceSet.GetObject(String key, Boolean ignoreCase, Boolean isString)
at System.Resources.RuntimeResourceSet.GetString(String key, Boolean ignoreCase) at System.Resources.ResourceManager.GetString(String name, CultureInfo culture) at Microsoft.CSharp.CSharpCodeGenerator.GenerateCompileUnitStart(CodeCompileUnit e) at Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeGenerator.GenerateCodeFromCompileUnit(CodeCompileUnit e, TextWriter w, CodeGeneratorOptions o) at Microsoft.CSharp.CSharpCodeGenerator.FromDomBatch(CompilerParameters options, CodeCompileUnit[] ea) at Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromDomBatch(CompilerParameters options, CodeCompileUnit[] ea) at System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromDom(CompilerParameters options, CodeCompileUnit[] compilationUnits) at System.Xml.Xsl.XsltOld.Compiler.CompileAssembly(ScriptingLanguage lang, Hashtable typeDecls, String nsName, Evidence evidence) at System.Xml.Xsl.XsltOld.Compiler.CompileScript(Evidence evidence) at System.Xml.Xsl.XsltOld.Compiler.Compile(NavigatorInput input, XmlResolver xmlResolver, Evidence evidence) at System.Xml.Xsl.XslTransform.Compile(XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence) at System.Xml.Xsl.XslTransform.Load(XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence) at System.Xml.Xsl.XslTransform.Load(XmlReader stylesheet, XmlResolver resolver, Evidence evidence) at Microsoft.XLANGs.BaseTypes.TransformBase.get_Transform() at Microsoft.XLANGs.RuntimeTypes.TransformMetaData..ctor(Type transformBaseType) at Microsoft.XLANGs.RuntimeTypes.TransformMetaData._creator(Type t) at Microsoft.XLANGs.RuntimeTypes.MetadataCache._slowFor(Type t) at Microsoft.XLANGs.RuntimeTypes.MetadataCache.For(Type t) at Microsoft.XLANGs.RuntimeTypes.TransformMetaData.For(Type t) at Microsoft.XLANGs.Core.Service.ApplyTransform(Type mapRef, Object[] outParams, Object[] inParams)Cause
This problem occurs because of a known issue in the CultureInfo class of the Microsoft .NET Framework 2.0.
Resolution
To resolve this problem, apply hotfix 2461007. For more information about hotfix 2461007, click the following article number to view the article in the Microsoft Knowledge Base:
2461007 System.ObjectDisposedException may occur when you run a .NET Framework 2.0-based application on a server that has the Chinese (Simplified) or Chinese (Traditional) language pack installed
Status
Microsoft has confirmed that this is a bug in the Microsoft .NET Framework 2.0 Service Pack 2.