2

我有一个用 C# 编写的用于处理数字文档的 Windows 服务,以及一个用 PHP 编写的 Web 应用程序。我需要能够通知 C# 服务新文档已准备好进行处理。

目前,C# 服务每 10 秒读取一次 MySQL 数据库,以查看是否有新任务要执行。这会导致 Web 应用程序的响应延迟 10 秒。我希望能够在文档准备好后立即触发 C# 服务。

我正在寻找一个答案,让 PHP 可以毫不拖延地通知 C# 服务。

以下是我的一些可能的想法;

  • 在 PHP 和 C# 之间使用共享内存对象,并让 C# 中的线程等待该对象发出信号。这可以用PHP吗?
  • PHP 使用 localhost 上的套接字连接到 C#,发送一个 nak 并断开连接。这对我来说似乎效率低下。
  • 将 MySQL 配置为使用内存中的表,并让 C# 服务每秒查询一次该表。
  • 在 C# 中创建某种使用 XML 或 SOAP 的 Web 服务是否困难,并且通过 PHP 调用该服务会有任何延迟(+1 秒)吗?

这就是我能想到的。也许应该有某种标准的方式来完成,我只是不知道。

4

3 回答 3

1

我将继续尝试回答这个问题。

在您的服务中,添加一个 OnCustomCommand 处理程序,如本问题所述以触发服务工作:如何从 .NET 代码向 .NET windows 服务发送自定义命令?

创建一个单独的 C# 应用程序,它只是将命令发送到您的服务并通过 exec() 函数从 PHP 调用它。

于 2013-01-24T17:24:22.087 回答
1

在 WCF 中创建一个 REST 外观以在针对 / 的 POST 上触发您的 c# 服务是非常简单的。可以根据部署的性质对安全性进行分层。

http://msdn.microsoft.com/en-us/library/bb412178.aspx

于 2013-01-24T17:24:40.283 回答
1

您可以在您的服务中自托管一个ASP.NET WebAPI

于 2013-01-24T17:29:40.390 回答