2012-01-22 6 views
1

登録とログインを許可する簡単なサービスを作ったので、サービス契約の唯一のメソッドは次のとおりです。パスワード)とLogIn(文字列のユーザー名、文字列のパスワード)。 Visual StudioサービスのGizmoでサービスを開始すると、メソッドを正しく呼び出すことができ、すべて正常に動作します。WCFサービスはLogin(...)の代わりにLoginAsync(...)のようなメソッドを表示します

私の問題は、アプリケーションでサービスを実装しようとするときです。私はそれを本当にシンプルにしました.1つのフォームには、ログインのためのユーザー名とパスワードのフィールドがあります。私はData - > Add New Data Sourceに行き、IISから私のアドレスを与えてサービスを追加しました(このサービスはIIS7でホストされています)。ここで-だろう実装コード

public class LoginServiceClient 
{ 
    static LoginService.LoginClient client = new LoginClient(); 

    public static bool LogIn(string username, string password) 
    { 
     string Username = username; 
     string HashedPassword = password; // No hash in place yet. 

     client. 
     return true;//Its *that* easy to get in my system. 
    } 
} 

今働いていない部分は私が入力開始行での切り取られている「クライアントが。」 LoginAsyncとRegisterAsyncの代わりにLogInとRegisterのようなメソッド名を見つけることを期待しています。両方とも何も返さないので、私はそれらを使うことはできませんし、コールバックメソッドも提供していません。

どうしたのですか?必要に応じて、サービスや実装の詳細(それだけ小さなもの)から、より多くのコードを投稿することができます。

答えて

2

あなたは間違って何もしなかっました、ではない心配します。この問題の事実は、Silverlightでは多くの操作が非同期であることが要求されていることです。 WCFサービスを呼び出す(または、何らかのネットワーク要求を行う)ことは、そのカテゴリの操作に該当します。

.NET FrameworkとSilverlightのconsuming asynchronous patternsを調べると、この新しいやり方に慣れることができます。 Silverlightはこれらを同期操作に変換することをサポートしていないため、このように動作するようにコードの一部を再構成する必要があります。

+0

あなたはそうです、私はこのやり方を研究する必要があると思います。私はそのページを非同期のパターンで読んで、私が掘り起こすことができるものを見ていきます。これに対して、私はこれらのパターンをより良く知るまで、svcutilに沿って生成されたファイルを使用します。 –

1

サービスプロキシを非同期実装として生成するようにsvcutilに誤って伝えたようです。 [新しいデータソースの追加]を選択したときに、非同期オプションがありましたか?私は正直、私はいつもsvcutilを使用し、その自動がらくたを生成し使用することはありません:

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

誤ってこれを引き金のように見えます:

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

+0

閉じるが、シガーはありません。 [tag:Silveright]タグに注目してください。 :) –

+0

私はいくつかの研究を行いました。私はsvcutilを呼び出して、結果のファイルを自分のアプリケーションにインポートしようとしました。うまくいきました。私は、ファイルの代わりに参照を使用することを望んだだろうが、ちょっと、それが動作する場合。 –

+0

[このMSDNの記事](http://msdn.microsoft.com/en-us/library/cc896571(v = vs.95).aspx)によると、どのように管理しているのか分かりません。 SilverlightでSvcUtilによって生成されたプロキシを使用しないでください。代わりに[SLSvcUtil](http://msdn.microsoft.com/en-us/library/cc197958(v=v9.aspx).aspx)を使用する必要があります。 –

関連する問題