【问题标题】:How can I call a C# server function from a SQL Server stored procedure [closed]如何从 SQL Server 存储过程调用 C# 服务器函数 [关闭]
【发布时间】:2014-08-18 18:42:09
【问题描述】:

如何从 SQL Server 发送 C# 函数调用?我有一个 SQL Server 2008 数据库和一个 C# Web 服务器,但是 SQL Server 数据库托管在一个不允许来自 SQL Server 的电子邮件的提供程序上,所以我需要在插入记录时向 Web 服务器发送一个 C# 函数调用所以我可以从网络服务器发送电子邮件。

【问题讨论】:

  • 您是否想说您需要将信息发送到服务器,而不是插入到 SQL 服务器的服务器?
  • 可以编写一个 C# SQL-CLR 程序集....但这似乎是完全错误的方法......你为什么不放一个应用程序在您的 Web 服务器上轮询包含发送电子邮件所需数据的表?任何时候您需要一封电子邮件,您只需从您的 SQL Server 代码中向该表中添加一行。看起来简单多了....
  • 真是一团糟。我会在 sql 中创建一个表,其中包含有关需要发送的电子邮件的信息。然后在您的网络服务器上创建一个流程以获取该信息并发送电子邮件。最后从表中删除这些行。
  • 呵呵,看来@marc_s 发布了与我几秒钟前相同的回复。 :)
  • 似乎你们都发布了我在答案中发布的相同回复。 :)

标签: c# sql sql-server sql-server-2008


【解决方案1】:

确实没有办法做到这一点(尤其是如果您有一个不允许电子邮件的提供商,我敢肯定他们不会允许嵌入式 C#。

最好的方法是编写一个在您的服务器上运行并查询数据库以查找更改的程序......当它看到更改时会发送一封电子邮件。

或者正如 marc_s 和 sean lange 指出的那样,您可以让 SQL 服务器控制所有规则并写入电子邮件内容表。然后,您的客户端应用程序只会从该表中读取要执行的操作并发送电子邮件。

将逻辑放在客户端还是服务器上取决于您要控制哪个进程。

【讨论】:

  • 您如何建议我让 Web 服务器检查 SQL 服务器上的记录更新。我不想让网站太慢。
  • @user3746002 - 不要预先优化,除非您编写的代码非常糟糕,否则您应该不会有问题。
【解决方案2】:

我将数据更新移动到在线系统而不是 Access 前端,这意味着更新后我使用网络服务器发送电子邮件。花了一点时间,但效果很好

【讨论】:

    【解决方案3】:

    【讨论】:

    • 显然他不能这样做,他甚至不能使用 sql server 的内置电子邮件功能在服务器上发送电子邮件。您认为托管服务提供商会允许他将代码加载到他们的 sql 服务器中,以专门绕过他们声明的政策?
    猜你喜欢
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多