如何从PHP发送通知到C#服务?

时间:2013-01-24 17:09:32

标签: c# php mysql windows-services

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

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

我正在寻找一个允许PHP毫不拖延地通知C#服务的答案。

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

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

这就是我所能想到的。也许有某种标准方式应该这样做,我只是不知道它。

3 个答案:

答案 0 :(得分:1)

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

在您的服务中,按照此问题中的说明添加OnCustomCommand处理程序以触发服务工作:How to send a custom command to a .NET windows Service from .NET code?

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

答案 1 :(得分:1)

在WCF中创建一个REST外观,在针对/触发POST的c#服务上是非常简单的。安全性可以分层,具体取决于部署的性质。

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

答案 2 :(得分:1)

您可以自行托管ASP.NET WebAPI in your service