none
Subir archivos desde ASP .NET a una FILETABLE de SQL Server RRS feed

  • Pregunta

  • Hola a todos me enfrento al siguiente problema en una desarrollo del sistema de nuestra empresa, necesito subir archivos a una tabla habilitada para FileTable de SQL, desde nuestra aplicacion ASP .NET desarrollando en VB .NET, utilizo un FileUpload para ello y un boton para para realizar la carga, si lo realizo desde el IDE de Visual Studio no hay problema se carga el archivo al Shared Folder que genera SQL, pero si lo paso a producción me da error de  Acceso denegado a la ruta. Les agradeceria mucho si me pueden orientar como darle permiso a la aplicacion para que pueda acceder a dicho Shared Folder. El código es el siguiente:

    Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpload.Click
            Dim clase As New clase_funciones
            Dim filePath As String = "\\Informatica2\mssqlserver\DemoFileTable\DemoFileTableFiles"
            
            Dim strNombreArchivo As String = ""
            Dim uploadedFiles As HttpFileCollection = Request.Files
            Dim i As Integer = 0
    
            
            Do Until i = uploadedFiles.Count
                Dim userPostedFile As HttpPostedFile = uploadedFiles(i)
    
                Try
    
                    If (userPostedFile.ContentLength > 0) Then
                       
                        userPostedFile.SaveAs(filePath & "\" & _
                           System.IO.Path.GetFileName(userPostedFile.FileName))
    
                    End If
    
                    Response.Write(clase.mensaje("Archivos subidos correctamente."))
                Catch ex As Exception
                    Response.Write(clase.mensaje("Ocurrio un error al subir los archivos. "))
                End Try
                i += 1
            Loop
        End Sub

    He leido que tiene que ver con darle permiso al Pool de IIS, pero no encuentro como hacerlo gracias de antemano.

    viernes, 15 de junio de 2018 22:43

Respuestas

  • Por los síntomas que indicas es un problema de credenciales. Cuando lo ejecutas desde el IDE rueda con tu propia cuenta de usuario, la cual probablemente tiene permisos sobre la carpeta compartida. Pero cuando lo publicas en IIS, rueda con las credenciales del Pool.

    Puedes cambiar la cuenta del Pool si lo deseas, o cambiar los permisos de la carpeta compartida para que admita la cuenta del Pool. De forma predeterminada, la cuenta del Pool es una cuenta de servicio en la máquina local, que desde la máquina remota se reconocerá como DOMINIO\NombreDeMaquina$ (ojo con el $ del final). Si no quieres autorizar esta cuenta en la carpeta compartida, entonces tendrás que cambiar la cuenta del Pool y poner una cuenta que se permita en la carpeta. Las credenciales del Pool se cambian desde la ventana "Avanzadas" de las Propiedades del Pool.

    sábado, 16 de junio de 2018 7:36