エラーメッセージ:
別のプロセスで使用されているため、プロセスはファイル 'C:\SampleProjectName\mytestcsv.csv' にアクセスできません。
fileupload (ファイル アップロード) コントロールを使用して、asp/VB.net で多数のファイル (CSV、XML、HTML) を読み込もうとしています。
Server.MapPath を使用してファイルを保存しているので、別の手順でファイルを処理できます。非常に奇妙ですが、同じファイルを何度も問題なく参照してアップロードできる場合もありますが、すぐに失敗する場合もあります。
最終的に WebDev.WebServer40.exe を強制終了して、存在するロックを解放できることがわかりました。これは面倒ですが、私のデバッグには問題ありません...しかし、エンドユーザーには受け入れられません。
私のファイルアップロードコード:
If fuImport.HasFile Then
If (System.IO.File.Exists(Server.MapPath("myhtml.html"))) Then
System.IO.File.Delete(Server.MapPath("myhtml.html"))
End If
Dim dtFromHTML As New Data.DataTable
Dim dtFromSQL As New Data.DataTable
Try
fuImport.SaveAs(Server.MapPath("mytestcsv.csv"))
'Process data here
ProcessCSVData(Server.MapPath("mytestcsv.csv"))
Catch ex As Exception
Response.Write("error: " & ex.Message)
Finally
fuImport.PostedFile.InputStream.Flush()
fuImport.PostedFile.InputStream.Close()
fuImport.FileContent.Dispose()
End Try
'Other things happen here
Else
Response.Write("no file...")
End If
どんなアイデアでも大歓迎です。