【发布时间】:2012-03-19 15:35:15
【问题描述】:
我想使用 NetMsmqBinding 创建一个 WCF 服务,它将数据插入 Oracle 数据库。我正在使用带有 C# 和 .NET 4.0 的 MS Visual Studio,目前使用带有 Oracle 11 的 System.Data.OracleClient。
我的要求是永远不会丢失任何数据,前提是客户端能够成功调用服务(从而将消息放入 MSMQ 队列)。
因此,我正在尝试设计服务,以便如果插入到 Oracle 中成功,则将消息从队列中取出。如果不是,则不应将消息从队列中取出,以便在一段时间内重试。我正在尝试使用事务(使用 TransactionScope 类)来确保它以这种方式工作。
但是,我在 TransactionScope 中将 INSERT 语句执行到 Oracle 中时,它会引发异常并且似乎会使 IIS 工作进程崩溃。 Oracle 似乎不支持 WCF/.NET 事务?我无法在任何地方找到明确的答案来说明 Oracle 是否支持 .NET 框架内的事务。这是可能的,还是我不在正确的轨道上?任何建议将不胜感激。
【问题讨论】:
标签: wcf oracle transactions msmq