0

バイナリ フォーマッタを使用して tcp チャネル経由で .net リモート処理を使用する、展開されたクライアント サーバー アプリの更新に取り組んでいます。クライアントは地理的に分散しているため、可能な場合にのみサーバー側で更新を行う必要があります。システムは .net 3.5 を使用し、クライアントとサーバーには、既知の実装クラスを含む共有 dll があります。この dll には厳密な名前がありません。

私が抱えている問題は、サーバーを更新して変更されたバージョンをデプロイしようとすると、クライアントが失敗し、次のようなエラー メッセージが記録されることです。

    Cannot load type '(service class name), (assembly name), Version =1.0.0.0, Culture = neutral, Public Key Token = null'

エラーで指定された詳細は、client.exe ファイルと同じディレクトリにデプロイされたアセンブリの詳細と一致するため、クライアントがアセンブリを読み込まない理由がよくわかりません。はい、クライアントのバージョンはサーバーとは異なりますが、バージョン番号は同じなので、動作するはずですよね?

4

1 に答える 1

0

これは、クライアントの以前の請負業者を信頼することの危険であることが判明しました...彼らが提供したソースが展開されたシステムに対応していると単純に想定していましたが、古いバージョンが提供されたようです。このエラーの原因となる特定の問題は、ソースを提供したバージョンとデプロイされたバージョンの間で、よく知られているサービス オブジェクトを含む名前空間の名前が変更されたため、デプロイされたアセンブリで見つからないというエラーです。 .

于 2012-12-11T11:22:43.333 に答える