在尝试终止一个调用Operations上的TerminateInstance的实例时,我得到了以下信息:
System.Data.SqlClient.SqlException (0x80131904): Conversion failed when converting from a character string to uniqueidentifier.
at Microsoft.BizTalk.Database.DatabaseAccessor.ExecuteReader(Int32 procIndex, Object[] procParams)
at Microsoft.BizTalk.Operations.OperationsMessageBoxAccessor.ops_OperateOnInstances(Int32 snOperation, Int32 fMultiMessagebox, Guid uidInstanceID, String nvcApplication, Int32 snApplicationOperator, String nvcHost, Int32 snHostOperator, Int32 nServiceClass, Int32 snServiceClassOperator, Guid uidServiceType, Int32 snServiceTypeOperator, Int32 nStatus, Int32 snStatusOperator, Int32 nPendingOperation, Int32 snPendingOperationOperator, DateTime dtPendingOperationTimeFrom, DateTime dtPendingOperationTimeUntil, DateTime dtStartFrom, DateTime dtStartUntil, String nvcErrorCode, Int32 snErrorCodeOperator, String nvcErrorDescription, Int32 snErrorDescriptionOperator, String nvcURI, Int32 snURIOperator, DateTime dtStartSuspend, DateTime dtEndSuspend, String nvcAdapter, Int32 snAdapterOperator, Int32 nGroupingCriteria, Int32 nGroupingMinCount, Int32 nMaxMatches, Guid uidAccessorID, Int32 nIsMasterMsgBox)
at Microsoft.BizTalk.Operations.OperationsGroup.OperateOnInstances(InstanceFilter ifc, MessageBoxDatabase mb, InstanceOperation op)
at Microsoft.BizTalk.Operations.OperationsGroup.TerminateInstances(InstanceFilter ifc, MessageBoxDatabase mb)
at Microsoft.BizTalk.Operations.OperationsGroup.TerminateInstances(InstanceFilter ifc)
at Microsoft.BizTalk.Operations.OperationsGroup.TerminateInstances(Guid instanceID)
at Microsoft.BizTalk.Operations.BizTalkOperations.TerminateInstance(Guid instanceID)我正在执行的代码是正确的,所以我不会浪费空间把它放在这里。这是运行在SQL 2014后端上的BizTalk 2013 R2,都在同一个框中。Windows 2012 R2。可能是什么原因,我试着把Guid解析成一个字符串,然后再返回,我想知道是否与Arch有关。但一切都以64位的速度运行。
总之,任何人都有任何想法,也有同样的问题.类似的?
发布于 2014-12-13 19:25:49
好的。结果,尽管我认为我有正确的代码,但我没有.
我在同一个BizTalkOperations对象上调用了BizTalkOperations方法,这是我最初用来执行查询以获取ServiceInstances的方法。
当我创建一个新的BizTalkOperations对象并在其上调用TerminateInstance,传递InstanceID时,问题就消失了。
或者至少有一些奇怪的事情发生在我不知道的内部,不管这是通过设计还是只是一个bug,这是一些需要注意的事情。
发布于 2020-07-29 08:49:54
最近,我在BizTalk 2016的多个MessageBoxDB安装程序中偶然发现了同样的奇怪行为,只有在MessageBoxDB上,错误才不会发生。
下面是我的代码来处理这个奇怪的bug
List<System.Guid> suspendedInstances = new List<System.Guid>();
using (var opsRead = new BizTalkOperations())
{
foreach (MessageBoxServiceInstance item in opsRead.GetServiceInstances())
{
if (item.InstanceStatus == InstanceStatus.Suspended)
{
suspendedInstances.Add(item.ID);
}
}
}
using(var opsWrite = new BizTalkOperations())
{
foreach(var itemId in suspendedInstances)
{
opsWrite.ResumeInstance(itemId);
}
}https://stackoverflow.com/questions/27454762
复制相似问题