ASP.net: невозможно записать в папку App_Data, доступ запрещен - PullRequest
0 голосов
/ 13 декабря 2010

Типичная проблема, но я сделал все возможное, чтобы заставить это работать.Я установил на своем ПК учетные записи NETWORK SERVICE и ASPNET в положение FULL CONTROL.Я использую встроенный веб-сервер Cassini для тестирования своего приложения, но не повезло.Я даже пытался создать папку вне папки APP_DATA, и все еще говорит, что Доступ запрещен.

У кого-нибудь есть какие-нибудь идеи?

ПРИМЕР КОДА:

  Dim uploadedFile As HttpPostedFile = Request.Files(0)
        Dim len As Integer = uploadedFile.ContentLength
        Dim fn As String = Path.GetFileName(uploadedFile.FileName)
        Dim SaveLocation As String = Server.MapPath("~/Help")
        Dim MyStream As Stream = uploadedFile.InputStream
        Dim input(len) As Byte

        MyStream = uploadedFile.InputStream
        MyStream.Read(input, 0, len)

        Try

            Dim newFile As FileStream = New FileStream(SaveLocation, FileMode.Create)
            newFile.Write(input, 0, input.Length)
            newFile.Close()
            'Dim writer As Stream = New FileStream(SaveLocation, FileMode.Create)
            'writer.Read()
            'writer.Close()
            'uploadedFile.SaveAs(SaveLocation)
        Catch ex As Exception

        End Try

ОБНОВЛЕНИЕ: необходимо иметь имя файла в месте сохранения, исправлено.

Ответы [ 3 ]

2 голосов
/ 13 декабря 2010

Хорошо, я понял это. Мне нужно было имя файла в SaveLocation. Полностью пропустил это. Спасибо за вашу помощь.

0 голосов
/ 13 декабря 2010

Если вы используете IIS, выясните, какая учетная запись системы (или пользователя) для пула приложений для сайта, с которым у вас возникают проблемы. Убедитесь, что у этого пользователя есть разрешения на данную папку.

Если вы работаете в Visual Studio 2005+, он запускает новый сервер разработки ASP.NET. Это работает как ваша текущая учетная запись. Вы локальный администратор на этой машине?

0 голосов
/ 13 декабря 2010

Какую версию IIS вы используете?

На IIS 6 и выше это NETWORK SERVICE.

В IIS 5 и ниже это учетная запись пользователя ASPNET, которой требуется необходимый доступ.

...