2

デジタルドキュメントの処理を処理するC#で記述されたWindowsサービスと、PHPで記述されたWebアプリケーションがあります。新しいドキュメントを処理する準備ができたことをC#サービスに通知できるようにする必要があります。

現在、C#サービスはMySQLデータベースを10秒ごとに読み取って、実行する新しいタスクがあるかどうかを確認しています。これにより、Webアプリケーションの応答性に10秒の遅延が生じます。ドキュメントの準備ができたらすぐにC#サービスをトリガーできるようにしたいと思います。

PHPがC#サービスに遅滞なく通​​知できるようにする答えを探しています。

これが私が持っていたいくつかの考えられるアイデアです。

  • PHPとC#の間で共有メモリオブジェクトを使用し、C#のスレッドにそのオブジェクトが通知されるのを待機させます。これはPHPで可能ですか?
  • PHPはローカルホスト上のソケットを使用してC#に接続し、nakを送信して切断します。これは私には非効率に思えます。
  • インメモリテーブルを使用するようにMySQLを構成し、C#サービスに毎秒テーブルをクエリさせます。
  • XMLまたはSOAPを使用するC#で何らかのWebサービスを作成することは困難であり、PHPを介してそのサービスを呼び出すのに遅れ(+1秒)がありますか?

それが私が考えることができるすべてです。たぶん、これが行われるべきある種の標準的な方法があります、そして私はそれを知らないだけです。

4

3 に答える 3

1

私は先に進み、これに答えようとします。

サービスで、この質問で説明されているように OnCustomCommand ハンドラーを追加して、サービスの作業をトリガーします: How to send a custom command to a .NET windows Service from .NET code?

コマンドをサービスに送信し、exec() 関数を介して PHP から呼び出すだけの別の C# アプリケーションを作成します。

于 2013-01-24T17:24:22.087 に答える
1

/ に対する POST で C# サービスをトリガーする REST ファサードを WCF で作成するのは非常に簡単です。セキュリティは、展開の性質に応じて階層化できます。

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 に答える