2012-02-06 18 views
1

Webサーバーにあるasp.net(C#)ページからリモートサーバーにファイルをアップロードする必要があります。ファイルをリモートサーバーにアップロード

私はこのコードを使用してローカルホストからリモートサーバにファイルをアップロードするために管理:

 string serverPath = "\\\\xx.xxx.xx.xx\\Folder\\" + FileUpload1.FileName; 
     FileUpload1.PostedFile.SaveAs(serverPath); 

しかし、私は私のウェブサーバーにこのコードを公開した後、それがネットワークパスが見つかりませんでした」エラーで動作を停止。 "

私は、UNCネットワーク共有の使用となりすましの実装を提案するいくつかのソリューションを検討しました。 これらのソリューションの適用方法を理解できませんでした。

誰かが例を挙げても簡単な解決策を提案できますか?

ありがとうございます!

答えて

2

FileUpload1.PostedFile.SaveAs(path)では、pathはファイルの物理パス、No Urlです。あなたはチェックする必要があります:

  • は物理フォルダExsistですか?
  • あなたはフォルダにアクセスできますか?

両方の質問の答えは、このコードの真のチェックの場合:

string serverPath = @"\\xxx.xxx.xxx.xxx\Folder\"; 
if (!System.IO.Directory.Exists(serverPath)) 
    System.IO.Directory.CreateDirectory(serverPath); 

FileUpload1.PostedFile.SaveAs(serverPath + FileUpload1.FileName); 
0

あなたがにアップロードするWebサーバ上の仮想ディレクトリを必要としています。コードではServer.Mapath( "仮想パス")関数を使用してサーバーパスを取得してから保存する必要があります。

1

アプリケーションを実行するアカウントには、ファイルをアップロードしようとしているフォルダへの書き込み権限が必要です。\\xx.xxx.xx.xx\Folder\。したがって、十分な権限を持つアカウントでIISが実行されるように、アプリケーションプールを構成する必要があります。アプリケーションを実行するために使用するアカウントを指定できるIIS管理コンソールのアプリケーションプールのプロパティに移動します。デフォルトでは、共有リソースへのアクセス権を持たないビルトインアカウントを使用します。方法を説明したfollowing articleをご覧ください。

関連する問題