1

WCFサービスを使用してデータを取得してDBに保存するWindowsPhoneアプリケーションがあります。WCFサービスへのサービス参照を追加し、VSがクライアントプロキシと構成ファイルを生成しました。

サーバー上のメソッドを呼び出そうとすると、問題が発生します。

最初の呼び出しでタイムアウトが発生し、サーバーは要求を受信しません。 2回目の呼び出しでのみ、サーバーは要求を受信します。

Win7MobileServiceClient client = new Win7MobileServiceClient();

client.GetUserCompleted += new EventHandler<ServiceReference1.GetUserCompletedEventArgs>(client_GetUserCompleted);

client.GetUserAsync(int.Parse(txtID.Text));

ありがとう

4

1 に答える 1

0

これはおそらく、サービスのウォームアップ プロセスによるものです。初めて WCF サービスが呼び出されると、しばらく時間がかかります (コンパイルしていると思います)。アプリ プールをリサイクルすると、再び発生します。

確実にこれを試すために

  1. WCF サービスをデプロイする
  2. Windows から WCF サービスを呼び出す
  3. Windows Mobile から呼び出す

この場合、Windows モバイル クライアントのデフォルトのタイムアウトが標準 (1 分) よりも小さいことが原因である可能性があります。あなたが好きにすることができる多くの解決策があります

  • Windows モバイルのタイムアウトを増やす
  • デプロイするたびにサービスを呼び出します (たとえば、Selenium で何らかのスモーク テストを行います。このアプローチの問題は、アプリ プールのリサイクル後に再び同じ問題が発生することです)。

この同様の質問を確認できます:最初の呼び出しの WCF パフォーマンスが遅い

于 2012-04-04T11:11:23.670 に答える