1

.NET プラットフォームを使用して Windows サービスを構築しています。このサービスは、各クライアントの各インスタンスで、複数のクライアントで実行することを目的としています。各サービス インスタンスは、個別のデータベースで動作します。すべてのサービス インスタンスは単一のサーバー上にあります。

最近、顧客 (サービスが実行されているサーバーをホストしている) から、Windows タスク マネージャーでサービスを表示すると、どのサービス実行可能ファイルがどの顧客向けであるかがわからないという質問がありました。そのため、彼はサービスの登録を解除し、サービス exe の複数のコピーを作成してから、ファイル名に顧客名を追加するように名前を変更しました。次に、サービスを登録しました。しかし、彼がサービスを実行しようとしたとき、彼は取得し始めました

サービスを開始できません。System.IO.FileNotFoundException: ファイルまたはアセンブリ 'AService, Version=2013.0.0.1004, Culture=neutral, PublicKeyToken=4a70863d203e0028' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

解決策を見つけるために数日を費やしましたが、できませんでした。誰かがこれで私を助けてくれますか? このようなアセンブリの名前変更は、.NET でも許可されていますか?

4

2 に答える 2

0


名前が見つからない呼び出しで実行時に名前変更アセンブルを試してください
。すべての参照で動作します。
http://support.microsoft.com/kb/837908/en-us

方法 3

于 2013-08-22T13:07:33.170 に答える
0

問題は、私が尋ねたものとはまったく異なります。私の悪い。サービスは、顧客に応じてアセンブリを動的に読み込みます。動的な読み込みロジックは、新しい AppDomain への任意の場所からのアセンブリの読み込みから取得されました。どうやら、これが原因で FileNotFoundException が発生していたようです。サービス exe ファイルの名前が変更されていない場合、動的ロードは機能します。

于 2013-08-23T14:35:43.513 に答える