2009-07-20 2 views
1

У нас есть .NET веб-приложение, установленное на сервере в месте: C:\Inetpub\fmtool\разрешений приложений Вебсервер выпуск

Один из наших утилит загружает файл в подкаталог установленного каталога.

Мы создаем структуру папок для этого загружаемого файла программно, чтобы гарантировать целостность структур папок. Это прекрасно работает.

Однако во время фактической копии файла (с использованием элемента управления загрузкой asp) мы получаем ошибку разрешений, указывающую, что доступ запрещен.

Я убедился, что учетная запись пользователя, запускающая приложение на сервере, имеет полный контроль над файловой системой (в разработке, конечно), и мы по-прежнему получаем эту отрицательную ошибку доступа.

FileUpload кажется прямо вперед:

fuiUpload.SaveAs(path); 

Был «путь» вытягиваются из Web.Config

<add key="ActualsImportPath" value="C:\Inetpub\fmtool\ActualsImport\Alpha"/> 

Если мы управляли этим местными мы должны были бы полной информация квалифицированного сервера в начинать правильно?

Например:

<add key="ActualsImportPath" value="\\SERVER-NAME\c$\blah"/> 

UPDATE:

После проверки моего кода. Я нашел вопиющую ошибку. На самом деле у меня на самом деле не была полная переменная «путь», когда я пытался обработать SaveAs(). Простая ошибка вызвала столько неприятностей. Спасибо всем за помощь. Смотрите ниже код, если интересно

До:

if (fuiUpload.HasFile) 
{ 
    // Did not have the complete path here..... 
fuiUpload.SaveAs(path); 

// Run the importer 
switch (rblImportType.SelectedValue) 
{ 
    case "0": 
    path += @"\Nightly Costing\" + DateTime.Now.ToString("yyyyMMdd") + "-NightlyCosting.csv"; 
    break; 

После:

if (fuiUpload.HasFile) 
{ 
// Run the importer 
switch (rblImportType.SelectedValue) 
{ 
    case "0": 
    path += @"\Nightly Costing\" + DateTime.Now.ToString("yyyyMMdd") + "-NightlyCosting.csv"; 
    fuiUpload.SaveAs(path); 
    break; 
+0

палочки с первым вариантом конфигурации, добавив имя компьютера и делиться только усложняет дело. Возможно, глупые предложения, но что-то, что легко упустить, вы проверяли, установлен ли в каталоге загрузки установленный флаг для чтения? –

ответ

0

После проверки моего кода. Я нашел вопиющую ошибку.На самом деле у меня на самом деле не была полная переменная «путь», когда я пытался обработать SaveAs(). Простая ошибка вызвала столько неприятностей. Спасибо всем за помощь. Смотрите ниже код, если интересны

До:

if (fuiUpload.HasFile) 
{ 
    // Did not have the complete path here..... 
    fuiUpload.SaveAs(path); 

    // Run the importer 
    switch (rblImportType.SelectedValue) 
    { 
     case "0": 
     path += @"\Nightly Costing\" + DateTime.Now.ToString("yyyyMMdd") + "-NightlyCosting.csv"; 
     break; 

После:

if (fuiUpload.HasFile) 
{ 
// Run the importer 
switch (rblImportType.SelectedValue) 
{ 
    case "0": 
    path += @"\Nightly Costing\" + DateTime.Now.ToString("yyyyMMdd") + "-NightlyCosting.csv"; 
    fuiUpload.SaveAs(path); 
    break; 
0

Если это сервер IIS 6.0, необходимо дать Сетевые услуги написать/создать разрешение на папку.

Обратите внимание, что идентификатор «Сетевые службы» является стандартным для веб-сайта. Проверьте флажок «Идентификация» для пула приложений, связанного с папкой приложения, если исправление выше не работает.

+0

Пробовал это .. К сожалению, это не сработало ... Спасибо за ответ, хотя –

1

Если я понимаю ваше обновление, вы решили свою проблему, исправьте? Я хочу сделать комментарий о настройке разрешений для учетной записи Network User. Предоставление доступа к данным CRUD для этого аккаунта, как правило, не является наилучшей практикой. У этой учетной записи слишком много полномочий для предоставления такого доступа. Я рекомендую создать учетную запись с единственной целью доступа к файловой системе из ваших веб-приложений. Затем вы можете использовать олицетворение, чтобы код, который обращается к файловой системе, делает это под видом этой учетной записи.

Надеюсь, у вас все хорошо работает.

Dave Ранк www.daveranck.com [fitnessforeveryman.com] [2]

Смежные вопросы