マップされたネットワーク ドライブと対話するサード パーティのプロセスを実行する必要がある Web サービスに取り組んでいます。したがって、このドライブを Web サービスからプログラムでマップする必要があります。
私はすでに WNetAddConnection2 などを別のプロジェクトのより適切なクラスにラップしているので、コードをそのまま挿入しました。
私たちの Web サービスは、System アカウントで実行される (IIS ではなく) UltiDev Cassini で実行されています。毎回、「指定されたデバイス名が無効です」というエラー コードが表示されます。また、web.config ファイルで他のユーザーになりすまそうとしましたが、結果は同じでした。
通常のユーザー アカウントでコンソール プログラムからコードを実行すると、ドライブは正常にマップされます。
また、C# から同等の「net use」コマンドを実行してみましたが、WNetAddConnection とまったく同じ結果が得られました。
Windows サービスまたはシステム ユーザーがネットワーク ドライブをマップできない理由を知っている人はいますか?
誰かが回避策を知っていますか? システムの起動時にドライブをマッピングするだけで解決できますが、システム/偽装ユーザーはどのようにアクセスできますか?
UltiDev Cassini へのリンク: UltiDev
解決策: UltiDev Cassini サービスを管理者としてログオンするように設定し、すべてが機能しています。ASP .Net 偽装は、計画どおりに機能してはなりません。