2

net.tcpバインディングを使用し、ファイルシステムに対してファイルの読み取り書き込みを行うWCFサービスを開発しました。(コンソールで)Windowsサービスを開始すると、sample.dllがフォルダーにある場合でも、次のエラーが発生します。

アセンブリファイルsample.dllが見つかりません

この特定のWCFサービスは、Windows764ビットで実行されるWindowsサービスでホストされています。次の質問があります。

アプリケーションにどのアカウントを使用する必要がありますか:

ユーザー/NetworkService/ LocalSystem / LocalService

そして、それがそこにあるのに、なぜOSはdllをロードできないのですか?

よろしくお願いします!

4

2 に答える 2

3

dll の場合、OnStart メソッドの先頭に次のコード行を追加する必要があります。

 System.Environment.CurrentDirectory = System.AppDomain.CurrentDomain.BaseDirectory

これにより、サービスが実際のディレクトリから dll をロードできるようになります。

于 2012-08-15T20:23:28.460 に答える
0

ServiceAccount に関するMSDN ドキュメントによると、User メンバーはユーザー名とパスワードの入力を求めます。ユーザー アカウントを使用していて、windows/system32 の読み取りアクセス許可がない場合、アセンブリが見つからない可能性があると思います。

おそらく、ServiceAccount を LocalService に 1 ステップ上に変更しますか?

于 2012-05-28T03:10:12.140 に答える