Delphi XE7 + Employee Interbase DB を使用しています。
Datasnap で SOAP サーバーを構築しようとしています。
1 つのサーバーに 3 つの SOAP サーバー データ モジュールがあり、それぞれにテーブルがあります: 顧客、従業員、国、それぞれが同じ方法 (ファイル、新規、その他、SOAP サーバー データ モジュール) で作成され、次にデータ エクスプローラーからテーブルをドラッグします。データ モジュール(Delphi は TSQLCOnnection と TSQLDataset を作成します)を追加し、次に TDatasetProvider を追加します。3 つのデータ モジュールは同一です。
クライアント アプリケーションには、WSDL インポーターによって作成された 3 つのインターフェイスがあります。
ICountryWM = interface(IAppServerSOAP)
['{1DA001BC-4DFB-E7F8-F62D-DA3545B334DC}']
end;
3 つのインターフェイスは同一です (もちろん、名前と GUID は異なります)。
クライアント フォームには 3 つのボタンがあり、同じ操作を実行します。
procedure TClientFM.BtnEmployeeClick(Sender: TObject);
begin
ClientDataSet.Close;
SoapConnection.Close;
SoapConnection.UseSOAPAdapter := False;
SoapConnection.SOAPServerIID := '{02E9AB9B-DB17-ACF5-68D9-73FC763C04DC}';
SoapConnection.URL := 'http://localhost:8080/soap/IEmployeeWM';
ClientDataset.ProviderName := 'EmployeeProvider';
SoapConnection.Open;
ClientDataSet.Open;
end;
ServerID、URL、ProviderName のみを変更します。
3 つの DatasetProvider ini の 3 つのデータ モジュールでは、「エクスポート済み」がチェックされています。
当初、最初の SOAP サーバー データ モジュール (Customer) はうまく機能しました。私のクライアントから、Customers テーブルを見ました。従業員または国を試したとき、常に「プロバイダーがエクスポートされていません」というメッセージが表示されました。
私は大きな間違いを犯しました:何かを変更しようとして、エクスポートされたフラグのチェックを外し、サーバーとクライアントをコンパイルして実行しました:何も機能しませんでした。わかりました、私はそれを期待していました。次に、フラグを再確認しました...エクスポートされたフラグが確認されましたが、正しく機能するプロバイダーはありません...(はい、現在機能していたものは機能しません)。
サーバーとクライアントの両方が同じ PC で実行されます。
誰かが私に何が間違っているのか教えてもらえますか? 問題はサーバーにあると思いますが、サーバーのどこですか?