0

次のようなソリューションに 3 つのプロジェクトがあります。

  • WCF サービス: いくつかのメソッドをホストします
  • クラス ライブラリ: Soap クライアントのインスタンスを返すことにより、WCF サービスへのゲートウェイとして機能します。
  • WPF アプリケーション: 参照されたクラス ライブラリを介してサービス メソッドを使用します。

すべてが完璧に機能していました...アプリケーションは、ライブラリを介して SOAP クライアントのインスタンスにアクセスし、それに応じてメソッドを消費していました。

これで、アセンブリに署名してもすべてがコンパイルされ、新しいメソッドを追加してライブラリのサービス参照を更新すると、新しいメソッドがアプリケーションに表示されます...しかし、アプリケーションを実行してメソッドを使用しようとすると、 aMissingMethodExceptionがスローされます:

メソッドが見つかりません: 'MusicData.Entities.User DBAccess_Gateway.DBInteraction_Service.DBInteractionGatewayClient.User_Login(System.String, System.String)'.

これは失敗した行です:

 var user = WSGateway.MR_WebService.User_Login(username.Text, crypto.Encrypt(passphrase.Password));

署名されているアセンブリ(現在は署名されているためgacにありますか?)に関係があると思います...しかし、メソッドが見つからないのはなぜですか?署名されたアセンブリが正しく更新されていませんか?

4

1 に答える 1

2

クラス ライブラリのサービス参照を更新するときは、アセンブリの新しいバージョンを作成し、この新しいバージョンを GAC に登録していることを確認してから、WPF アプリがこの新しいバージョンを参照していることを確認してください。

于 2009-04-22T14:15:09.973 に答える