1

簡単な問題。データベース接続を追加したアプリケーションの概念実証に取り組んでいるので、データベースをラップする WCF サービスを作成します。マルチユーザー環境では、このサービスを中央サーバーにインストールし、ローカル システムにクライアント アプリケーションを配置します。これらのユーザーは自動的にファイアウォールの問題に対処する必要があるため、これは許容されます。

ただし、シングル ユーザー環境では、サービスとクライアント アプリケーションが 1 つのシステムで実行されます。サービス ホストは、現時点では明確な形を持っていませんが、アプリケーション自体内で、または Windows サービスとしてホストされる可能性があります。

残念ながら、クライアント アプリケーションは WIN32 Delphi アプリケーションであり、サービスにアクセスするための簡単な方法が必要です。できれば、シングルユーザー バージョンはマルチユーザー バージョンと同じ手法を使用してサーバーにアクセスする必要があります。つまり、WSDL をインポートして Delphi コードに変換すると、SOAP クライアントのように動作します。

それでも問題はありませんが、このセットアップで発生する可能性のある問題を考慮する必要があります。最も重要な問題は、接続ポートを閉じたファイアウォールの可能性です。

では、このシングルユーザー環境で発生する可能性のあるファイアウォールの問題について知っている人はいますか?

4

2 に答える 2

2

使用している WCF チャネルについて言及していません。basicHttpBinding と仮定します。通常、ローカル サービスがセルフ ホスティングを使用して 127.0.0.1 にバインドされていて、オンボックス クライアントがその方法でアクセスする場合は問題ありません。私が認識しているファイアウォールは、あなたのループバック アダプターを台無しにすることはありません。ただし、サービスをマシンの IP にバインドすると、ファイアウォールの影響を受ける可能性があります。

両端のクライアントで WCF 3.5 を使用できる場合 (申し訳ありませんが、Delphi については何も知りません)、netNamedPipeBindingを試してみてください。

于 2009-12-10T09:39:45.147 に答える
1

使用している Delphi のバージョンについては言及されていませんでしたが、Delphi 2005 で WCF サービスをインポートするのに苦労したことがありbasicHttpBindingます。は多くのページに分割されているためWSDL、Delphi の SOAP インポート ウィザードはそれを理解できませんでした。最終的に、Delphi クライアント用の WCF サービスの ASMX ラッパーを作成することになりました。

于 2009-12-10T09:51:15.523 に答える