SQLCLR触发VS Windows服务。 什么时候适合使用SQLCLR?

我们有一个SQL Server 2005后端一个.NET的电子商务应用。 一个新的秩序需要一定的“后处理”。 这些任务包括发送电子邮件,创建文件,上传文件到FTP服务器,并执行CRUD操作对一个WCF数据服务。 完成所有这些任务的代码已经到位几个.NET类库。

我的团队是有,辩论是在哪里放置这个代码。 我已经写了民意调查数据库定期并在在数据库检测新事务(基于标记),它做必要的事情,并记录任何错误,一个简单的Windows服务。 已经提出的另一种方法是一个SQLCLR INSERT触发器,将掀起的处理。

我知道这是技术上是可行的SQLCLR上述任务做太多(所有?) - 我甚至发现了一些文章,解释如何从内部SQLCLR使用Web服务,那么显然人们正在做这件事。 但我还在犹豫。 当时SQLCLR曾经针对这种事情? 如果不是,这可能是实际的坏处? 作为一个SQLCLR触发了一个窗口服务的潜在好处,我只能看到一种:少分贝的交通。 我们预计,很轻的交易量开始,因此Windows服务会产生一些“浪费”的交通。 但是服务是在同一机器中的数据库,因此它甚至不影响网络,只有内部服务器资源。

最后,第三个可能性是使用一个SQLCLR触发器保存该文件系统上的一个简单的标记,并使用FileSystemWatcher的Windows服务(而不是定时器)根据需要执行的任务。

请权衡这些不同的方法分享您的想法或者建议一个更好的选择。

--------------解决方案-------------

当看到一个类似的过程在这里有一些事情我们考虑。

  1. 在相关的系统(邮件,FTP)不可用,会发生什么?
  2. 如何发生故障的恢复工作?
  3. 如果我们处于失败状态发生了新的记录内容。 难道他们尝试做后期处理,即使我们知道系统是跌?
  4. 什么是技能那些谁是配套的生产体系​​?
  5. 这个过程是如何监控的?
  6. 消耗主系统的资源,同时处理后处理系统? 怎么会做你把它们分开?
  7. 是故障转移支持?

我们选择使用Windows服务,因为它提供给那些将支撑系统(人谁将会花更多的时间在serverfault而不是计算器)的最佳体验。 因为它有一个既定的方式来停止和启动服务,监控,群集支持,易于分割加工到多台计算机,与事件日志集成等

有一些事情是,SQL CLR是专为 - 这是不是其中之一,投入之类的东西,在一个INSERT触发器真的会使婴儿耶稣哭了。

一个可能的解决方案是使用查询通知,以减轻服务和数据库之间的负载 - 另一条路线可以采取允许该服务可以通过UDP或一些类似的轻量'ping通“ - 这意味着你AREN”牛逼导致群众发生在插入(因此你是不是锁定基础表过多的时间)。

分类:。净 时间:2012-01-01 人气:0
分享到:

相关文章

  • 托管在Windows窗体WCF数据服务 2012-02-16

    我想在Windows form.Is可以举办一个WCF数据服务(以前称为ADO.NET数据服务)? 如果是的话,那么有没有博客,其中谈论它? 我知道WCF可以在Windows窗体主办,但我不知道WCF数据服务,因为所有我看到的例子,被要求创建ASP.NET Web项目. -Brajesh --------------解决方案------------- 这是很容易在WinForms应用程序托管WCF数据服务(或在我的情况下,一个单元测试). // add reference to System.D

  • 插入行到SQL Server使用EF + WCF数据服务的.Net框架4 2012-10-11

    我最近部署的.Net 4 WCF数据服务托管在IIS 6,企业环境(内部网)中,使用实体框架. 我访问使用的OData服务,并从托管SQL Server 2005上的表已成功检索数据. 问题是,我不能插入新行. 我到目前为止已经做的是设置实体权利ALL - > IE浏览器. config.SetEntitySetAccessRule("*", EntitySetRights.All); 我使用的是IIS上的集成安全性. 当我做一个POST使用jQuery,则返回500错误代码.

  • 如何通过SQL Azure的联合会使用WCF数据服务? 2012-03-02

    是否有可能使用WCF数据服务,以提供存储在SQL Azure上联合会联合会会员的实体CRUD访问? 假设联邦密钥存储在安全主体,并在应用程序上下文一应俱全,有没有办法拦截服务操作,并发出相应的使用联邦命令,打开在合适的时间连接,因为人会做,如果明确开发ADO.NET实体框架? --------------解决方案------------- 我通过附加一个事件处理程序由WCF数据服务使用的"Connection.StateChange"中的DbContext物业解决了这个问题. 在此事件

  • WCF数据服务windows身份验证问题 2012-08-10

    我有一个WCF数据服务,并在web.config我已经使用 <authentication mode="Windows" /> 我试图避免任何具有约束力的配置,所以在这一点上没有用过. 我从一个WPF应用程序访问该服务. IIS配置为仅"Windows身份验证". 当我访问服务,我设置凭据 _proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; 但是,我得到一个

  • 什么是查询/保存从服务器'好'的办法:DTO或WCF数据服务? 2012-08-28

    从我的角度来看,数据服务及查询方法查询从服务器端的领域模型简单的对象图时非常有用. 但是,当你要查询复杂的依赖关系,我不能创造什么好东西出来. 经典的DTO方法是细粒度的,可以处理一切,但缺点是,你必须创建DTO类每种类型的服务器请求这是费时,你必须与你的域实体/业务逻辑同步DTO类型. --------------解决方案------------- 取决于你的'好'的定义 - 这是否意味着更快的推向市场,或更容易保持在长期运行的应用程序. 手工编写DTO的将意味着最初的开发工作可能会比使用工具

  • 为什么我的null值在WCF数据服务和实体框架4我的SQL插入(的complexType的)? 2013-07-20

    我使用的是EF 4,WCF数据服务和Silverlight 4.我已经获得的数据从我的服务没有问题. 我试图挽救实体在在EF定义复杂类型具有非可空列一个批次. 例如:客户有审计的复杂类型. 审计署已被标记为计算一个EntryDateTime列(会是问题吗?). 它还具有所需的地址字段. 在我的Silverlight应用程序,我有一个表格来输入客户信息和地址信息. 保存按钮单击我做这样的事情: Customer c = new Customer(); c.Name = this.nameTextB

  • 使用REST WCF数据服务作为数据源的SQL报告服务 2013-11-24

    大家好,任何人都可以指向我一个明确的微软地图,其中报表服务会使用WCF数据服务(ADO.NET数据服务,道夫)作为数据源有关? 有零散的信息位在那里,一些有关创建自定义数据提供者,一些关于某种延伸使有关连接到SharePoint的最新版本(同样的SharePoint连接到Azure存储层(公开为REST数据服务,我相信)和一些揭露其数据作为REST服务?),但似乎并不至于对REST服务报告(我在WCF数据服务特别感兴趣)是任何类型的统一的愿景. 我错过了一个门户网站或什么地方? 什么是与这两种技

  • 使用“LINQ to SQL的”和“WCF数据服务”上的数据访问应用程序块的顶部 2014-03-05

    在我的应用程序,在应用程序部署后,根据从最终用户的输入捕获,利用工具创建的实体数据库架构. 我不能在这种情况下使用实体框架,因为造型也不是没有可能的开发环境(Visual Studio中). "代码优先"​​的做法也排除了,因为它需要的代码生成这可能会导致不必要的复杂性. 无论如何,我需要一个数据访问层. 因此,我打算引入数据访问应用程序块(DAAB)到我的解决方案. 使用 SQL 管理对象(SMO)我可以执行DDL和数据访问,我将使用DAAB. 现在,这里是我的困惑. 我可以使用LI

  • 使用WCF数据服务与Windows应用程序 2014-10-17

    是否有意义使用WCF数据服务在一个正常的Windows应用程序(的WinForms或WPF),或者是这种技术只适用于基于Web或Silverlight应用程序? 什么是比较正常的WCF的优势是什么? --------------解决方案------------- 这实在是在任何情况下个人喜好,坦率地说. 数据服务的"常规"服务之间唯一的区别是,数据服务使一些基于惯例,有关交通和数据格式的假设. 如果使用RESTful服务对你有意义(这是其中关键的操作是数据查询或操纵功能,几乎所有的服务

  • 我应该如何使用OpenID的从Windows Phone 7的应用WCF数据服务进行认证? 2015-02-09

    我有读取和这是在和ASP.NET MVC 3应用程序托管的WCF数据服务的服务将数据写入一个Wi​​ndows Phone应用程序. 我可以配置客户端和服务器是必要的. 我想,如果实际使用OpenID的,并且一旦用户在手机上认证它们应该能够通过它与OpenID的相关的数据进行浏览. 我应该如何配置客户端和服务器,使这项工作? --------------解决方案------------- 要在应用程序中使用的OpenID,你应该看看使用它连接到提供者的网站(或您的网站,可以重定向)嵌入WebBr

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.658 (s). 10 q(s)