2015-07-10 91 views
0

目前我將嘗試從SQL數據庫從一個Web應用程序VB.NET

這裏檢索文件路徑打開我的web應用程序文件打開一個文件,是我的代碼,將打開的時候我雙倍的文件單擊列表框中的一個索引。

Protected Sub userdoubleClick() 
    Dim selectedPath As String 

    Try 
     fileConnection.Open() 


     selectedFile = FileListBox.SelectedValue 

     'takes the selected items from the listbox and searches the database for the file 
     'and will open the file for the user 
     fileCommand.CommandText = "SELECT filePath FROM ImportedFiles WHERE FileName = '" & selectedFile & "'" 

     fileDataReader = fileCommand.ExecuteReader 
     Do While fileDataReader.Read 
      selectedPath = fileDataReader.GetValue(0) 
     Loop 

     System.Diagnostics.Process.Start(selectedPath) 

    Catch ex As Exception 

    End Try 

    fileConnection.Close() 


End Sub 

當我在本地PC上運行它時,它工作正常,但是當我將它發佈到服務器時,它不會打開文件。

+0

你在說什麼?本地機器上的路徑?相對於您網站根目錄的路徑?請提供示例 – Steve

+0

文件路徑位於共享驅動器中,並且看起來像這樣\\ webapp \ backup \ Archived \ 20150709_1324849.pdf – averyto8

+0

打開文件後,您要如何處理該文件?你是否將內容返回給瀏覽器?你正在處理文件?另外,當你說它「不會打開」你是什麼意思?你是否遇到異常?我敢打賭,例外是權限問題,特別是如果文件在共享服務器上。 –

回答

2

System.Diagnostics.Process.Start(selectedPath)將在運行Web應用程序的機器上打開文件;換句話說,它在本地運行時在本地機器上打開它,但在部署時在服務器上打開。這只是不會起作用。

ASP.Net Download file to client browser

1

如果你從Web應用程序訪問的文件,然後在其下的文件被打開用戶身份不是登錄到你的應用程序用戶。它是運行IIS應用程序池的用戶。這是需要授予共享驅動器權限的用戶。

解決此問題的方法很多,包括更改應用程序池運行的環境或將文件製作爲本地文件。

相關問題