サーバー上のディレクトリから、そのコンピューター上にないネットワーク共有にファイルを移動するプロセスを作成しようとしています。この方法論は、ローカル マシンからネットワーク共有に移動するときにうまく機能しました。ただし、サーバーにプロセスを配置すると機能しません(このプロセスは基本的に実行中のサービスによって取得されるdllであり、サービスはスレッドをスピンアップし、それをプロセスに渡します)。プロセスは、共有ディレクトリにアクセスできる ID を使用して実行されていますが、それを移動することはできません。例外の発生も検出できません。私はそこにかなり良いログインをしており、例外はスローされていないようです。もっと詳しく見ていきますが、以前にこのようなことを試みた人はいますか? 私はこれのどちらかを呼び出します...
File.Move(@"C:\Output\" + FileTitle, ShareDirectory + "\\" + FileTitle);
それともこれ...
File.Copy(@"C:\Output\" + FileTitle, ShareDirectory + "\\" + FileTitle, true);
ファイルが存在するかどうかに応じて...何かになりすまして何かが解決するかどうかはわかりませんか?サービスは、共有にアクセスできる LDAP ユーザー名で既に実行されています...
更新: より多くの情報が発見されました
わかりました、私は決してヒットしなかった間違った条件を持っていたので、例外をキャッチしていませんでした...私はこの例外を受け取ります...
Exception Publishing Document to Share: System.UnauthorizedAccessException: Access to the path is denied.
その例外を見たら、有効なユーザーになりすますことにしました...そして、まだその例外が発生しています...サーバー上のそのディレクトリのマッピングはまったく役に立ちますか? いいえと思いますが、アイデアが不足しています。
更新: 自分自身と他のユーザーになりすますとき
プロセスで自分自身になりすますと、ファイルを共有に正常に移動できます。しかし、同じ権利を持つべき別のユーザー名になりすますと、上記の例外が発生します。なぜこれが起こっているのかはわかりません。おそらく、このユーザーには、私が持っていると思われる権限がありません。しかし、ウィンドウを見て LDAP サーバーを見るだけで、そうであるように見えます。とても好奇心旺盛です。