2012-04-10 3 views
0

私は、MigraDoc/PDFsharpを使用してPDFファイルを生成します。 問題は、PDFドキュメントをレンダリングした後、DevServerのどこかに保存したいのですが、PDFsharp PdfDocument.Save()メソッドでFileStreamを作成するとUnauthorizedAccessExceptionが発生します。 私は実際にゲームをするよりも先進的なものをWindowsに使用したことはありません。なぜなら、私は管理者ユーザーとしてログインしているので、なぜこの例外が出るのか分かりませんし、ASP.NETアプリケーションが管理者権限で実行されているはずですファイルシステムのどこにでもファイルを書き込むことができます。ASP.NET私は仕事のリストを持っており、私はユーザーに仕事の説明をpdfファイルの形式で入手するオプションを与えている。Save()のUnauthorizedAccessExceptionを生成する。

コードです。

 GridViewRow jobRow = (GridViewRow)(sender as Control).Parent.Parent; 

     Document jobDocument = new Document(); 
     Section xyz = jobDocument.AddSection(); 
     xyz.AddParagraph("Wonderfull job"); 

     PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(true); 
     pdfRenderer.Document = jobDocument; 
     pdfRenderer.RenderDocument(); 

     string filename = "Job_" + jobRow["3"] + ".pdf"; // Job_[title].pdf 
     pdfRenderer.PdfDocument.Save(filename); 

最後の行は例外の原因となる行です。 提案がありますか?私はASP.NET開発者ではありません。私は非常に単純な問題かもしれないので、私は自分の学校プロジェクトにASP.NETを使用することを余儀なくされていますが、私は本当に何をして何を検索するのか分かりません。回答ありがとうございます!

答えて

0

管理者アカウント=! IISユーザー。 IISユーザーにも書き込み権限が必要です。 ほとんどのマシンでは、「IIS_User」または「ネットワークサービス」として認識されています。まず、すべてのユーザーに書き込み権限を与えることができます。これはあなたのために働く場合、あなたは何をすべきか知っています。 絶対パスをファイル名として設定してください。おそらく "C:\ inetpub \ wwwroot"外のディレクトリですか? これが役立つことを願っています!

+0

私は100%確信していませんが、私はIISを使用していません。私はVisual Studio 2010に付属しているデフォルトのWebサーバーを使用しています(IISとは関係がないかどうかはわかりません)。私は私のWebルートディレクトリの外にファイルを書き込もうとしたことを忘れてしまい、問題なく動作します。 – Viktor

+0

次に、アプリケーションディレクトリ/にPDFを保存するディレクトリに "everyone"のアクセスを許可します。 フォルダ - >プロパティ - >セキュリティ/権限 - >編集 - >全員へのフルアクセスを右クリックします。 (翻訳が間違っているかもしれません) – jordi

+0

これはうまくいきました。私は今のように気分がいいですね... :) – Viktor

関連する問題