Asp.net 在表中插入raw后如何调用Web服务

Asp.net 在表中插入raw后如何调用Web服务,asp.net,sql,sql-server,web-services,sql-server-2008,Asp.net,Sql,Sql Server,Web Services,Sql Server 2008,我有一个程序,它在某些操作之后在表中插入一个raw。我想在代码隐藏中调用web服务,通过使用插入行中的信息来执行一些特殊任务 我怎么能做到 从存储过程调用此web服务是否是一个好主意?其他的选择是什么 更多细节:实际上,我的web应用程序中有一个操作需要很长时间才能完成,这是一个非常耗时的操作。我不想让客户等到这个过程结束。这就是为什么我决定在后台编写一个web服务来完成这个过程。 因此,我认为当客户端请求收到时,我将他的请求插入表中并调用web服务来处理它可能是一个好主意。此外,我不想等到we

我有一个程序,它在某些操作之后在表中插入一个raw。我想在代码隐藏中调用web服务,通过使用插入行中的信息来执行一些特殊任务

我怎么能做到

从存储过程调用此web服务是否是一个好主意?其他的选择是什么


更多细节:实际上,我的web应用程序中有一个操作需要很长时间才能完成,这是一个非常耗时的操作。我不想让客户等到这个过程结束。这就是为什么我决定在后台编写一个web服务来完成这个过程。
因此,我认为当客户端请求收到时,我将他的请求插入表中并调用web服务来处理它可能是一个好主意。此外,我不想等到web服务返回结果,所以我将通过报告从其结果中感知客户机。我不知道处理它的最佳解决方案是什么。

我通常远离表触发器(听起来好像您要对表使用插入触发器)。
我不知道您的具体情况,但您可以:

  • 在调用存储过程之前或之后调用webservice,这样数据层(存储过程)只处理数据,而不处理其他内容。您的逻辑层将处理调用额外Web服务的逻辑
  • 编写一个服务,该服务将定期读取一个表,并将最新修改通知Web服务。更混乱,但更像是你想要达到的效果

可能有更多的解决方案,但我需要更多关于你到底在做什么的信息
现在有点模糊:)

从存储的进程或其他数据库对象调用webservice从来都不是一个好主意。您可以在执行insert并提交它之后,从代码中调用它。

它听起来像是一个问题,除非您在提交事务之前调用它,否则您无法保证web服务将被调用。但是,听起来好像在提交之后需要调用web服务。在这种情况下,听起来应该使用消息队列。您可以在数据库中构建一个,也可以使用现成的(或)

这些步骤将是:

  • 将消息插入队列(此操作成功后,您可以返回呼叫,具体取决于您与呼叫方签订的合同)
  • 阅读信息
  • 插入表格
  • 调用web服务
  • 删除消息

  • 缺点是您需要使操作(插入到表中并调用web服务)成为幂等的。

    +1这是基本操作,但实际上更复杂,因为您只需要在提交插入后调用web服务。实际上,我的web应用程序中有一个操作需要很长时间才能完成,这是一个非常耗时的操作。我不想让客户等到这个过程结束。这就是为什么我决定在后台编写一个web服务来完成这个过程。因此,我认为当客户端请求收到时,我将他的请求插入表中并调用web服务来处理它可能是一个好主意。此外,我不想等到web服务返回结果,并且我通过报告从结果中了解到客户端。请再次阅读问题。我希望web服务处理该过程,而客户端(以及应用程序)不会等到结果返回。我想让web服务来做这件事,并更新数据库本身。