2014-02-19 2 views
0

У меня есть текстовый файл RHKLIS.txt, который помещается в D: \ диска. Я обнаружил некоторый фрагмент кода для извлечения пути текстового файла, и он работает нормально во время работы на локальном хосте. Я развернул код в какой-либо тестовой машине, используя IIS 7.0 и попытался получить доступ к одному и тому же коду, но не получил его, указав ошибку как Sql транзакция закрылась в строке if (! File.Exists (path)). Так что я узнал, что указанный путь является проблемой в коде. Но все же я не знаю, какой тип ошибки это потому, что на этом же тестовом компьютере есть тот же текстовый файл, который находится на диске D: \.Извлечения текстового файла выдает ошибку при развертывании в IIS 7.0

в web.config

<appSettings> 

    <add key="LISpath" value="D:\RHKLIS.txt"/> 

</appSettings> 

.cs файл

string path = ConfigurationManager.AppSettings["LISpath"].ToString(); 
    FileStream fs = null; 
    if (!File.Exists(path)) 
    { 
     fs = File.Create(path); 
     fs.Close(); 
    } 

    StreamWriter sw = File.AppendText(path); 

    sw.WriteLine("O~" + billHospNo.Text.Trim() + "~ ~" + opBillNo.Text + "~" + billDate.Text + "~" + itemCode.Text + "~" + itemName.Text + "~" + p.Honourfic + "~" + p.Patient_Name + "~" + p.Gender + "~" + p.Age + "~" + "Y" + "~" + "~" + "~" + "~" + "~" + "~" + department.SelectedItem.ToString() + "~" + billDate.Text + "~" + itemDept.Value + "~" + deptName + "~" + yearOB + "~" + due); 
    sw.Close(); 

ответ

0

При этом предполагается, что у вас есть полные права администратора на сервере.

Щелкните правой кнопкой мыши по папке и выберите свойства. Откроется окно свойств папки - выберите тег безопасности. Вы увидите два списка: верхний для пользователей или групп, а нижний - права - нажмите кнопку «Изменить» под пользователями.

Откроется другая вдова - нажмите кнопку «Добавить» - откроется другое окно. Убедитесь, что местоположения предназначены для локального компьютера, а не для домена, затем нажмите «Дополнительно» и нажмите кнопку «Найти сейчас». Просмотрите список, пока не увидите пользователя IIS_IUSRS, и дважды щелкните по нему. Это поместит пользователя в нижний текст, который будет подан в окне выбора. Просто нажмите «ОК», и он автоматически предоставит этому пользователю необходимые разрешения для папки, а затем просто нажмите «ОК» до тех пор, пока все окна не будут закрыты.

Надеюсь, это поможет ... Это позволяет доступ только для чтения к этой папке из IIS.

0

Это звучит как проблема безопасности. Во-первых, файл, находящийся в корне D: будет означать, что вы бы открыли весь D: на сервер IIS (не очень хорошая практика). Скорее создайте новую папку, добавьте пользователя IIS_IUSRS (с чтением & выполните, содержимое папки списка и разрешения на чтение) - затем поместите файл в эту папку. Измените настройку в файле конфигурации и это должно сработать ...

+0

Нужно ли добавлять IIS_IUSRS? Существуют ли другие методы, такие как изменение кода для решения проблемы? –

+0

Привет Shreyas - да, он наследуется в архитектуре сервера. Сервер IIS не будет видеть какую-либо папку, если этот пользователь не будет добавлен в разрешение. Таким образом, нет, это невозможно изменить в коде. – warwickf

+0

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

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