2017-02-01 6 views
0

サーバから同じドメインにある別のサーバにファイルを転送する方法を複数試みました。 私が何をしようとしても、間違ったユーザー名や悪いパスワードを取得し続けるのですが、サーバーから "\ serverIP \ c $"フォルダに手動でアクセスしようとすると、正しいユーザー名とパスワードでフォルダに正しくアクセスできます。C#を使用して同じドメインのサーバから別のサーバにファイルを転送する方法

私のコードの最初の部分は、アプリケーションがホストされているサーバへのローカルPCからファイルを置き、これは完璧に動作します:

   string path = Path.Combine(Server.MapPath("~/ACAD_Drawings"), 
              Path.GetFileName(file.FileName)); 
       file.SaveAs(path); 

は、しかし、私は、その後に、このサーバーからこのファイルを移動する必要がありますファイルを使用する別のサーバー、および私の最後の試みは、次のコードを使用して行った:

   NetworkCredential myCred = new NetworkCredential("Username", "Password", "DomainName"); 
       WebClient webclient = new WebClient(); 
       webclient.Credentials = myCred; 
       string tempFileForStorage = path; 
       file.SaveAs(tempFileForStorage); 
       webclient.UploadFile("\\\\NewServerIP\\c$", "PUT", tempFileForStorage); 
       webclient.Dispose(); 
       System.IO.File.Delete(tempFileForStorage); 

を、私は彼らが正しいことを確信しているとき、私は間違ったユーザー名とパスワードを得続けるこのコードで。私が間違ったことをしているのか、足踏みをしていないのか誰にも分かりますか

+1

あなただけのファイルをコピーしていますか?なぜあなたはWebクライアントを使用しますか? – BugFinder

+0

http://stackoverflow.com/questions/3700871/connect-to-network-drive-with-user-name-and-passwordを見てください。これは、リソースへのクレジットの追加方法を示しています。 .netファイルIO操作。 –

+0

@BugFinder私は、単純なFile.Copyを使用していても、さまざまな方法を試しましたが、サーバごとに異なるので、毎回ユーザ名またはパスワードのエラーが発生します。 – Maeglin77

答えて

0

あなたのクエストでは1番目:SMB/CIFSプロトコルが必要です。参照:https://en.wikipedia.org/wiki/Server_Message_Block、(@Steveドレイク)を接続する方法:Connect to network drive with user name and password

第二あなたが別のコンピュータの使用SMBに接続したときに、あなたが書く/読むことができるリモートファイルがローカルコンピュータのようなIO通常使用しています。

2つのサーバーが同じLAN内にない場合 socketのように、良くなる、ファイルを転送するために他の方法を使用し3ND

WebAPIなど

関連する問題