FileUpload .net контроль и сохранение файлов в виртуальную папку на удаленном файловом сервере - PullRequest
5 голосов
/ 24 октября 2009

У меня есть веб-сайт .net, который находится на веб-сервере под управлением IIS 6.0 на сервере win2k3. Это включает в себя виртуальный каталог, который через имя UNC указывает на файловый сервер. «Подключиться как» настроено на использование учетной записи службы в нашем домене AD, которая имеет доступ к веб-приложению, а также для записи и изменения в папку файлового сервера. В настоящее время я использую псевдоним для учетной записи службы и установил соответствующие разрешения в папке временных файлов Miscrosoft.net на веб-сервере. Я не могу создать каталог записи или сохранить файл. Любая информация будет оценена.

Ответы [ 2 ]

2 голосов
/ 24 октября 2009

Во-первых, пароли «Connect as» не будут храниться в памяти навсегда (перезагрузка), и, к сожалению, по этой причине вам, возможно, придется искать альтернативу этому методу подключения.

Во-вторых, имеет ли рабочая учетная запись ASP.NET "Имя компьютера IUSR_IIS" доступ к каталогу назначения, в который вы пишете? Я предполагаю, нет, потому что это не будет известный пользователь на удаленном сервере. Это означает, что специальному пользователю / объекту «Все» должен быть предоставлен доступ (в вашем конкретном сценарии).

Альтернативой может быть подключение с использованием пользователя, известного обоим хостам.

0 голосов
/ 26 октября 2009

У меня это работает сейчас. Для правильной работы вам необходимо: 1. Сервисная учетная запись с не истекающим паролем в вашем домене, доступная веб-серверу и файловому серверу. 2. Вы создаете соответствующую виртуальную папку с «подключиться как», установленный для учетной записи службы с соответствующим паролем 3. Необходимо предоставить разрешения на запись для учетной записи службы в каталог .net Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files на сервере. 4. Учетной записи службы должен быть предоставлен доступ для чтения / записи / изменения к папке с файлами. 5. «Сохранить как» должно быть полным UNC-именем файлового сервера. Не используйте путь к server.map, но укажите полное имя папки, например: \ myserver \ sharename \ directory \ + filename. Я храню свой файл в файле web.config в виде пары ключ / значение.

Это подводит итог.

Фрагмент кода:

попытка { if (uploadDoc.FileName! = "") {

                if (!Directory.Exists(MyFilePath))
                    Directory.CreateDirectory(ServerFilePath);


                if (!File.Exists(Server.MapPath(ServerFileName)))
                {
                    uploadDoc.PostedFile.SaveAs(SaveLocation);
                }
...