2016-10-31 2 views
0

質問ダウンロードSSRSレポートと特定の場所(C#の)に保存する(不正な)

それは私の選択の名前で特定のフォルダにあります。私は、必要に応じて、これを行うさまざまな方法の提案に公開しています。

問題私は常に関係なく、私が入力した資格情報は、以下のエラー(401)無許可を取得していないのですが

:私はこのコード(C#)を使用しています

An exception of type 'System.Net.WebException' occurred in System.dll but was not handled in user code

Additional information: The remote server returned an error: (401) Unauthorized.

を:

WebClient myWebClient = new WebClient(); 
NetworkCredential netCredential = new NetworkCredential("username", "password"); 
myWebClient.Credentials = netCredential; 

var theURL = "http://ReportServer/ReportServer_MYSERVER/Pages/ReportViewer.aspx?%2fPurchaseOrder&rs:Command=Render&OrderID=100&rs:ClearSession=true&rs:Format=PDF" 

byte[] myDataBuffer = myWebClient.DownloadData(theURL); 

例URL(これは単純にコピーすると完全にファイルをダウンロードします私のマシンはドメイン上にあり、これらの資格情報をドメインとデータベースSAアカウントと一緒に試してみましたが、どちらも同じ問題。 「http://www.axmag.com/download/pdfurl-guide.pdf

ありがとう、すべてこの問題についてのヘルプは、イムは望ん:

私は例えば、私は、インターネットからランダムにURLをハードコーディングされ、これが働いたとして、PDFファイルをダウンロードする際に、このコードは動作します知っています

var theURL = "http://ReportServer/ReportServer_MYSERVER/Pages/ReportViewer.aspx?%2fPurchaseOrder&rs:Command=Render&OrderID=100&rs:ClearSession=true&rs:Format=PDF"; 

WebClient Client = new WebClient(); 
Client.UseDefaultCredentials = true; 

byte[] myDataBuffer = Client.DownloadData(theURL); 

は、このコードは、上記のいずれかのSSRSを可能にします:これは私のアプリケーションに非常に便利なほかになると、これが可能であることを

答えて

1

それは(デフォルトクレデンシャルを使用して)私のシナリオについては、このような単純なだっ判明しますbに報告するバイト配列としてダウンロードされます。これは、それはあなたの選択の名前で、指定した場所に保存することができることを意味します

var filename = "Test.PDF"; 
var fileStructureLocal = "C:\\Test"; 
var fileStructureNetwork = "\\\\NetworkDrive\TestFolder"; 

var fileLocation = fileStructureNetwork + "\\" + filename; 

if (System.IO.File.Exists(url) == true) 
     { 
      //DO NOTHING 
     } 
else 
     { 
      System.IO.File.WriteAllBytes(url, myDataBuffer); 
      //SAVE FILE HERE 
     } 

この次のブロックは、ファイルの名前を変更し、場所を指定する方法です。私はまた、すでに存在するかどうかを確認するためのチェックを追加しました。

これは私が長い間働くことを試みてきたものなので、これが助けてくれることを願っています!

関連する問題