- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个带有 SQL Server 2005 后端的 .NET 电子商务应用程序。新订单需要一定的“后处理”。这些任务包括发送电子邮件、创建文件、将文件上传到 FTP 服务器以及针对 WCF 数据服务执行 CRUD 操作。执行所有这些任务的代码已作为多个 .NET 类库就位。
我的团队正在进行的争论是在哪里放置此代码。我编写了一个简单的 Windows 服务,它定期轮询数据库,并在检测到数据库中的新事务(基于标志)时,它会执行必要的操作并记录任何错误。已提出的替代方案是 SQLCLR INSERT 触发器,它将启动处理。
我知道在 SQLCLR 中完成上述大部分(全部?)任务在技术上是可行的 - 我什至发现了许多文章解释如何从 SQLCLR 中使用 Web 服务,所以显然人们正在这样做。但我还在犹豫。 SQLCLR 曾经用于这种事情吗?如果不是,实际的缺点是什么?至于 SQLCLR 触发器相对于 Windows 服务的潜在好处,我只能看到一个:更少的数据库流量。我们预计最初的交易量非常小,因此 Windows 服务将产生一些“浪费”的流量。但该服务与数据库位于同一台机器上,因此它甚至不会影响网络,只会影响内部服务器资源。
最后,第三种可能性是使用 SQLCLR 触发器在文件系统上保存一个简单的 token ,并使用 Windows 服务中的 FileSystemWatcher(而不是 Timer)来根据需要执行任务。
请分享您对这些不同方法的权衡的想法或提出更好的替代方案。
最佳答案
在研究类似的流程时,我们考虑了一些事情。
我们选择使用 Windows 服务,因为它为那些支持系统的人(那些愿意花更多时间在服务器故障而不是 stackoverflow 上的人)提供了最佳体验。因为它有一个既定的方法来停止和启动服务、监控、集群支持、轻松地将处理拆分到多台机器、与事件日志集成等。
关于.net - SQLCLR 触发器与 Windows 服务。什么时候适合使用SQLCLR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3963134/
我正在审查顾问 checkin 的一些代码,并注意到他们正在使用 SQLCLR。我没有任何经验,所以我想我会研究它是关于什么的。我注意到他们使用了 Dim cn As New SqlConnectio
我正在尝试将一些现有的 C# 代码转换为 CLR 存储过程。要使用的明显连接字符串是上下文连接(“context connection = true”)。 我遇到的问题是有些事情显然不适用于这种连接类
我正在尝试创建一个可以在 Sql 中使用的 CLR 哈希函数。 我要做的是计算一行的 md5 校验和 值。如何定义函数的输入应该是一行? 例如,Sql原生的checksum函数以'expression
我的任务是获取客户端收到的电子邮件的“已读回执”,并且这些电子邮件是使用 SQLCLR 存储过程发送的。但我无法弄清楚它是如何完成的。您能否告诉我如何为电子邮件配置已读回执? 最佳答案 我原本以为使用
在 SQL-CLR 程序集中.. 有没有一种方法可以让我加载某些数据并可能从 上的数据库中读取数据仅装配负载 ? 假设我有一类用户定义的函数,这些函数使用一些正则表达式,这些表达式必须根据我在数据库中
以防其他人遇到这个问题。 Error: SQL72014: .Net SqlClient Data Provider: ... CREATE ASSEMBLY for assembly 'Assemb
既然 C# 支持可选参数,是否有一种方法可以编写 SQL CLR 存储过程,以便从 Visual Studio 发布时使用在 C# 中定义的可选参数在 SQL Server 中创建存储过程? 过去唯一
我感觉很疯狂,我决定我真的很想用 Python 编写一个可以在 SQL Server 2008 中运行的用户定义函数。我对此很感兴趣,因为我有几千行 PL/Python 函数为 PostgreSQL
我正在用 C# 构建自定义用户定义类型以用于 SQL CLR。 See this reference . 底层数据可以使用常规带符号的 32 位整数以 4 个字节表示。这是实现: [Serializa
使用 SQL Server 2008、Visual Studio 2005、.net 2.0 SP2(支持新的 SQL Server 2008 数据类型)。 我正在尝试编写一个将 DateTime2
这是我看到的一个新现象,我的数据库名称是:MySQLCLR,有一个脚本总是在其中给出这个名称: :setvar DatabaseName "MySQLCLR" 现在突然间,每次我对我的 sqlclr
根据this线程,F# Core 必须经过 SQLCLR 批准才能将程序集标记为 SAFE。这是有计划的吗?还可以吗? 最佳答案 我相信这是可以做到的。但是,F# 核心库是 Microsoft 的专有
在我们的开发服务器最近重新启动期间,SQL Server 开始使用 .NET 4.0 作为 SQLCLR。这意味着在 SQL 中使用 CLR 没有任何作用,或者至少是我通过阅读这些源代码得到的理解:
我正在尝试调用一个 .net 程序集,它包装了来自 Sql Server 的几个 COM 调用(对第三方 dll)。程序集注册正常(我尝试使用不安全和外部访问注册),但是当我运行该过程时出现此错误:
我正在尝试使用 SQLCLR 从 SQL Server 启动 Windows 程序。调用的过程没有报错,但是程序好像没有启动。 知道我可能做错了什么吗? 这是我的程序的 .NET 代码: using
我们有一个第三方 DLL,它可以对源信息的 DataTable 进行操作并生成一些有用的值,我们正在尝试通过 SQLCLR 将其连接起来,以便在 SQL Server 2008 中作为表值 UDF 进
我在 C# 6.0 .NET 3.5 CLR 程序集中编写了一些安全级别为 external_access 的代码。 精简代码: public static readonly DataTable w
我创建了一个调用如下程序集的触发器: CREATE TRIGGER Testrigger ON STATION FOR INSERT AS EXTERNAL NAME assemblytest.[W
我们有一个带有 SQL Server 2005 后端的 .NET 电子商务应用程序。新订单需要一定的“后处理”。这些任务包括发送电子邮件、创建文件、将文件上传到 FTP 服务器以及针对 WCF 数据服
有一些关于如何在 SQL Server 中使用 F# 和 SQLCLR 的博客文章很有帮助:http://richardminerich.com/2015/12/a-safer-way-to-use-
我是一名优秀的程序员,十分优秀!