簡體   English   中英

嘗試使用SSIS從客戶端桌面導入時,拒絕訪問路徑

[英]Access to path is denied when trying to import from the client's desktop with SSIS

我正在創建一個html頁面,它將excel文件導入到跟蹤系統中。 在單擊按鈕事件上,找到excel文件/ ssis包被觸發/數據導入然后關閉。 那就是想法的工作流程。 問題是甚至在包執行之前就拒絕了excel文件訪問

這是確切的錯誤: 在此處輸入圖片說明

我試過了 :

  • excel文件屬性已共享給所有人
  • 身份模擬設置為true
  • 硬編碼路徑

這是VB代碼

    Protected Sub bntExecute_Click(sender As Object, e As EventArgs) Handles btnExecute.Click

    Dim app As Application = New Application()
    Dim package As Package = Nothing
    'Dim fileName As String = "C:\Users\Desktop\T. Bryant III\PTSID_Update_Template"'

    Try
        Dim fileName As String = Server.MapPath(System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName.ToString()))

        FileUpload1.PostedFile.SaveAs(fileName)

        package = app.LoadPackage("@C:\Users\Desktop\T.Bryant III\KitImport", Nothing)

        'excel connection from package'
        package.Connections("SourceConnectionExcel").ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0data source =" + fileName + "Extended Properties = Excel 8.0"

        'Execute the pakage'
        Dim results As Microsoft.SqlServer.Dts.Runtime.DTSExecResult = package.Execute()

    Catch ex As Exception
        Throw ex 

    Finally
        package.Dispose()
        package = Nothing
    End Try

End Sub

在此先感謝您,或者如果有更簡單的方法可以進行此操作,請告訴我。 在sis中執行該程序包時,可以使用其自己的連接管理器等正常運行。

一些嘗試。 如果它們不能作為您的永久解決方案,則至少應確認您的代碼正在運行,並且您正在解決權限問題(似乎是這種情況)。

  • 將文件移到公用文件夾(C:\\ Users \\ Public)。
  • 以管理員身份運行您的應用程序(或Web瀏覽器)(如果適用於您的Windows版本)。
  • 如果您使用的是網絡瀏覽器,請嘗試使用其他瀏覽器。
  • 如果沒有其他效果,請嘗試將代碼粘貼到Windows Form應用程序中。

如果嘗試了所有這些步驟后仍然遇到相同的錯誤,那么該換一下代碼了。 刪除Try / Catch塊,以准確確定哪條線引發了錯誤。 如果您嘗試過硬編碼,那么我猜這是SaveAs方法。 我不確定FileUpload1是什么類,但是某些SaveAs方法不會覆蓋現有文件,除非您明確告訴它們。 檢查適當的文檔,看看是否不需要將True值與文件名一起傳遞。

用結果更新我們。 至少,這應該縮小您的問題范圍,並可以對其進行更好的診斷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM