4

サーバー管理者に話しかけただけで、両方のサーバーにすべての権限が設定されています。エラーが表示されるようになりました:ネットワーク パスが見つかりませんでした。このデモ用にダミーのサーバー名を付けましたが、間違った名前を使用しています。IP アドレスを使用してみましたが、それでもこのエラーが発生しますか? 私は何を間違っていますか?

'File.Copy("\\sever.name.local.mil\pdf\audits\2009-05-19audit-09-01.pdf", 
 "\\sever.name.remote.mil\sigar_cms\pdf\audits\2009-05-19audit-09-01.pdf")'

誰かが私にいくつかの提案をしてもらえますか、これは私の頭を悩ませています。

ありがとう

4

6 に答える 6

3
Dim FilePath As String = "\\sigar" & "\pdf\audits\" & ""

これにより、文字列が作成されます\\sigar\pdf\audits\。次のように行を簡略化できます。

Dim FilePath As String = "\\sigar\pdf\audits\"

Server.MapPathWebサイトの仮想パスをサーバー上のファイルパスに変換するために使用されます。つまり、まったく使用する必要はありません。2行目を次のように変更します。

FileUpload1.SaveAs(FilePath + FileName)

それが機能しない場合は、アプリケーションプールが実行されているIDに、指定されたパスにファイルを書き込むためのアクセス許可がない可能性があります。の共有やファイルのアクセス許可を調整してみてくださいsigar

アップデート

ファイルをコピーするには、File.Copyを使用します。

File.Copy("\\serverA\path\to\file", "\\serverB\path\to\file")
于 2012-11-14T22:09:59.717 に答える
2

解決済み: わかりました。ドライブのマッピングに使用したものと同じネットワークパスを使用することになっていました。$ ドル記号を使用するのを忘れました。

 ''# Save files to disk
  FileUpload1.SaveAs(Server.MapPath("../pdf/audits/" & FileName))

 ''# Local Path
  Dim localPath As String = "\\localserver\folder$\pdf\audits\"

 ''# Remote Path
  Dim remotePath As String = "\\remoteserver\folder$\pdf\audits\"

 ''# Copy from Local to Remote servers
  System.IO.File.Copy(localPath + FileName, remotePath + FileName)
于 2012-11-15T17:31:23.947 に答える
0

@Geeサーバー上のある場所から同じサーバー上の別の場所にコピーするようにコードを調整しました。このコードは機能しました。念のため、環境で最初にこれを実行してください。

それはある種のネットワークアクセスの問題であるように私には思えます。クロスドメイン、ユーザーまたはグループの権限または制限など。

Imports System.IO
File.Copy("\\CHI-CSD-06.mycompany.local\temp1\testfile.txt", "\\CHI-CSD-06.mycompany.local\temp2\testfile.txt")
于 2012-11-15T17:02:32.550 に答える
0

2 つのサーバーが同じローカル ネットワーク上にあり、適切なアクセス権があると仮定すると、File.Copy メソッドを使用して、サーバー/パスごとに UNC を使用できるはずです。

2 つのピア サーバー間でファイルを単純にコピーするよりも状況が少し複雑な場合は、転送方法として FTP または SSH の使用を検討することをお勧めします。

于 2012-11-14T22:44:57.640 に答える
0

あなたのタグ付け以来、これはIISのアプリケーションプールで実行されているWebアプリケーションであると想定しています。

最初ステップは、アプリ プールのユーザー アカウントに他のアカウントへの書き込みアクセス許可があることを確認することです。デフォルトでは、このアカウントはIIS_USR.

2 番目のステップは、ファイルを 2 番目のサーバーに保存することです。

Dim FilePath As String = "\\sigar\pdf\audits\"
Dim FileName As String = "MyFile.txt"

FileUpload1.SaveAs(String.Format("{0}{1}",FilePath, FileName))

独自の書き込みメソッドを作成することもできます

Dim SourcePath As String = "C:\foo\pdf\audits\"
Dim FileName As String = "MyFile.txt"

Dim FileToCopy As String = String.Format("{0}{1}",SourcePath, FileName)

Dim DestPath As String = "\\sigar\pdf\audits\"

System.IO.File.Copy(FileToCopy, DestPath)
于 2012-11-14T22:46:28.510 に答える
0

投稿されたコードにはいくつか問題があります。さらにコードがある場合は、投稿することをお勧めします。そうは言っても、私が見たものに基づいて、このMSの記事を読むと、現在表現されているように、あなたの質問に答えることができます.

テキストファイルの書き込み( Basic File IO )

このサンプル コードでは、StreamWriter クラスを使用してファイルを作成し、書き込みます。既存のファイルがある場合は、同じ方法で開くことができます。

Dim writer As StreamWriter = _
New StreamWriter("c:\KBTest.txt")
writer.WriteLine("File created using StreamWriter class.")
writer.Close()
于 2012-11-14T21:59:49.490 に答える