我正在尝试使用BizTalk 2013中的WCF-SQL适配器从存储过程返回记录。 我跟着一个简单的online walkthrough,似乎能得到我所需要的东西。 但是,当接收位置运行时,我一直收到一个转换错误。我的SP中没有任何GUID。我甚至将我的SP简化为返回硬编码字符串的SQL语句。
SELECT [描述],PackageName FROM(SELECT'ABC'[描述],'123'作为PackageName)作为ResponseTable
Schema需要两个字符串类型的字段。
见下面的错误。
The receive location "Receive - Package" with URL "mssql://xxx/xxx?InboundId=PackageErrors" is shutting down. Details:"Microsoft.ServiceModel.Channels.Common.AdapterException: Unable to cast object of type 'System.Guid' to type 'System.IConvertible'.. Endpoint Address - mssql://xxx/xxx?InboundId=PackageErrors ---> <b>System.InvalidCastException: Unable to cast object of type 'System.Guid' to type 'System.IConvertible'.</b>
at Microsoft.Adapters.Sql.SqlAdapterInboundHandler.Polling_WaitForMessage(TimeoutHelper timeoutHelper)
at Microsoft.Adapters.Sql.SqlAdapterInboundHandler.WaitForMessage(TimeSpan timeout)
--- End of inner exception stack trace ---
at Microsoft.Adapters.Sql.SqlAdapterInboundHandler.WaitForMessage(TimeSpan timeout)
at Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage(TimeSpan timeout)
at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()".
答案 0 :(得分:0)
在一个方面,这种做法是错误的。
不是使用“添加适配器元数据”,而是使用“消费适配器服务”,选择sqlBinding,配置URI,连接,选择合同类型的服务(入站操作),然后选择存储过程从那里。
这将为您的接收位置创建绑定文件带来额外的好处,然后您可以导入该文件并进行正确配置。它不会像添加适配器元数据那样创建Orchestration,但实际上我更喜欢它。