2011-12-14 21 views
0

テキストをテキストファイルに書き込むタスクを書く必要があります。これはあまりにも複雑ではありません私は最初に考えたものですが、私はかなり早いうちにどこかでミスをしています。タスクは後で、ローカルのWindowsアカウントを持たないユーザーとして実行する必要があります。多分それも問題になるかもしれませんが、以前はスタックしています。私の(ローカル管理者、ドメインユーザー)を実装し、Windowsのタスクスケジューラでタスクを実行するには、アクションは.exeを実行することですが、タスクは、ログインしていなくても実行する必要があります。テキストファイルを書き込む予定のタスク(ConsoleApp)を書く

exeの状態でコードフォルダ

 

    StreamWriter sw = null; 
    try 
    { 
     sw = File.CreateText(@"C:\temp\test.txt"); 
     sw.WriteLine("something something"); 
    } 
    finally { sw.Dispose(); } 

(temp-)フォルダは、後でタスクを実行する私とユーザーを含め、ドメイン全体からアクセスできます。

タスクはエラーコード0xc0000005で終了し、テキストファイルは書き込まれません。何が間違っているのですか?テキストファイルはありません!

ありがとうございました!

PS:タスクの背後にあるアイデアは、ネットワークドライブにアクセスできるユーザーとして実行され、ネットワークドライブに格納されたデータを、ネットワークに接続しているPCの人間がアクセスできるようにすることですドライブは痛みです。

+2

例外の場合だけでなく、常に処分する必要があります。 –

+0

これも起こり得る例外を飲み込む可能性があります。 –

+0

何が問題になっているようですか?あなたは実際に問題が何であるかは言わなかった。どのようなエラー/例外が表示されますか? – Oded

答えて

0

5のエラーコードは、 "アクセスが拒否されました" を示しています。スケジュールされたタスクを実行するユーザーに、C:\ TEMPへの書き込み権限がありますか?

+0

ありがとう、これは問題です。しかし、ユーザーはローカルユーザーではないため、フォルダを共有したくないから...(しかし、それは単語ですか?)問題はまだ発生していますが、正しい方向です。 – efkah

0

は常に使用して使用します。

try { 
    using (StreamWriter sw = new StreamWriter(@"C:\test\test.txt", false)) { 
     sw.WriteLine("Write something"); 
    } 
} 
catch (Exception e) { 
    DoSomeThing(e); 
} 
+0

私は使用していると思います。または試してみてください。しかし、とにかく感謝;-)私はその "推奨されたアプローチ"を知っている – efkah