如何解决BizTalk 2016-WCF-Oracle适配器问题-建立连接时引发异常,
我正在迁移BTS 2016中的旧BTS 2006应用程序。 我对WCF-Oracle适配器有问题。尝试连接数据库时,它将引发异常。当我尝试使用适配器来读取或更新数据时,也将适配器用于轮询,就会出现问题。简而言之,不可能将Oracle DB与适配器连接(通过代码连接就可以了,因此很难想象ODP问题)。
我将BTS 2016,WS 2016,ODP 12.2.1.0安装在32位和64位环境中。 我尝试了在适配器选项中进行几乎所有更改的可能性,但是没有结果。
我想我错过了一步,但是哪一步呢?
所有明显的问题都已检查(TNS名称,端口,用户/密码等...)
异常堆栈:
*The Messaging Engine failed to add a receive location "xxxx_Receive_Location" with URL "oracledb://XXXXXXX.****.net:1522/YYYYYY.****.net/Dedicated" to the adapter "WCF-OracleDB". Reason: "System.NullReferenceException: Object reference not set to an instance of an object.
at Oracle.DataAccess.Client.OracleException.get_Number()
at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx* pOpoSqlValCtx,Object src,String procedure,Boolean bCheck,Int32 isRecoverable,OracleLogicalTransaction m_OracleLogicalTransaction)
at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,OracleLogicalTransaction m_oracleLogicalTransaction)
at Oracle.DataAccess.Client.OracleConnectionOCP.Open(OracleConnection con)
at Oracle.DataAccess.Client.OracleConnection.Open()
at Microsoft.Adapters.OracleCommon.OracleCommonConnectionWrapper..ctor(String connectionString,OracleCommonExecutionHelper executionHelper)
at Microsoft.Adapters.OracleDB.OracleDBConnection.Microsoft.ServiceModel.Channels.Common.IConnection.Open(TimeSpan timeout)
at Microsoft.ServiceModel.Channels.Common.Design.ConnectionPool.GetConnection(Guid clientId,TimeSpan timeout)
at Microsoft.ServiceModel.Channels.Common.Design.ConnectionPool.GetConnectionHandler[TConnectionHandler](Guid clientId,TimeSpan timeout,MetadataLookup metadataLookup,String& connectionId)
at Microsoft.ServiceModel.Channels.Common.Channels.AdapterChannelListener`1.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint.Enable()
at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint..ctor(BizTalkEndpointContext endpointContext,IBTTransportProxy transportProxy,ControlledTermination control)
at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiver`2.AddReceiveEndpoint(String url,IPropertyBag adapterConfig,IPropertyBag bizTalkConfig)".*
解决方法
Oracle客户端安装并重新安装ODP之后解决的问题。似乎wcf-oracle适配器使用非托管驱动程序,并且非托管驱动程序需要Oracle客户端。
,尝试从头开始设置接收位置。
以前,在BizTalk版本之间迁移绑定时,我们遇到了问题,因为它们在Adapter中引入了新设置,但未设置默认设置。从头开始创建端口将确保将其设置为某个值。然后,您可以将新的绑定与旧的绑定进行比较,并找出罪魁祸首。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。