Дело об ошибке FrontPage

Тема в разделе "Microsoft Windows 7", создана пользователем Саныч, 2 июл 2009.

  1. Саныч
    Оффлайн

    Саныч Активный пользователь

    Сообщения:
    869
    Симпатии:
    1.697
    В очередной статье из серии "Дело об..." от Марка Руссиновича (Mark Russinovich) мы поговорим об ошибке, вызванной некорректным наследованием прав в Windows.

    Представляем вам первую публикацию из серии "Дело об" от стороннего автора. За последние два месяца мы получили множество великолепных статей с расследованиями, но для первого раза мы выбрали это, написанное Троем Вольбринком (Troy Wolbrink), корпоративным веб-мастером.

    Трой столкнулся с проблемами со своим сервером и вместо того, перезагрузить его, переустановить его или звонить в Microsoft Product Support Services, где, несомненно, ему бы посоветовали эти же шаги, он использовал базовые техники для решения проблем, на что ему понадобилось несколько минут. В благодарность за детальную статью со скриншотами я послал Трою подписанною копию книги Windows Internals.

    В свой доклад Case of the Unexplained..., который я озвучил наTechEd/IT в июне, я включил несколько новых дел. Даже если вы видели мой доклад с ноябрьского TechEd/ITForum, рекомендую вам ознакомиться и с этим, поскольку вы сможете узнать много нового.

    Итак, слово Трею.

    Недавно я перевел свой сайт с общего хостинга на выделенный сервер. Некоторые части моего сайта использовали FrontPage Server Extensions (FPSE), например, страницы, которые собирали данные и сохраняли их в лог.

    [​IMG]
    Я установил FPSE, используя аплет установки и удаление программ, а потом сделал все, чтобы настроить его с помощью IIS. Но по какой-то причине я не мог правильно настроить FPSE, чтобы моя форма сбора данных работала. Сообщение об ошибке в браузере было абсолютно непонятным.


    [​IMG]


    Я изучил на предмет возможных проблем логи из Event Log сервера, но ничего не нашел.

    В мои планы входила замена данного сайта на соответствующий, созданный на ASP.NET и SQL Server, так что я не видел причин, чтобы становится гуру по FPSE для того, чтобы решить одну эту проблему. Но так как другие приоритеты в течение уже нескольких лет мне мешали перейти на ASP.NET, у меня не было другого выбора, кроме как провести расследование. Я как раз недавно смотрел "The Case of the Unexplained…", и решил запустить Process Monitor на своем сервере - возможно, я бы увидел источник проблемы. Я исключил из логов некоторые процессы, которые очевидно, что не могли иметь никакого отношения к моей проблеме. Это удалило много мусора. Так как моя страница называется TntWebLog.htm, а логи пишутся в файл TntWebLog.csv, то я настроил программу так, чтобы она подсвечивала любые события, в пути которых содержится TntWebLog.

    Чтобы повторно вызвать появление проблемы я запустил браузер и попытался снова заполнить форму, после чего я прекратил захват событий в Process Monitor. После этого я пролистал список в поиске выделенных строчек. Я удивительно быстро нашел источник проблемы. FPSE пытался создать файл с таким же именем, который уже существовал.

    [​IMG]

    Очевидно, что здесь было что-то не так с правами доступа. Я проверил права доступа к файлу TntWebLog.csv и не нашел в списке учетной записи IUSR_WEBBOARD, которая настроена в IIS для анонимного доступа.


    [​IMG]


    Так что я зашел в расширенные свойства файла и отметил пункт "Allow inheritable permissions from the parent to propagate…", подтвердив свой выбор ОК.

    [​IMG]

    Это действие позволило решить проблемы с безопасностью файла. Я провел тест и убедился, что проблема была решена.

    Оглядываясь назад, я могу сказать, что эта проблема произошла из-за того, что я использовал Windows Explorer для перемещения, а не копирования файла. Для подтверждения провел несколько тестов. Когда вы перемещаете файл с помощью Windows Explorer, то Windows Explorer копирует и права доступа, а когда копируете - Windows Explorer создает новый файл, права для которого берет из прав папки. Если бы я изначально копировал этот файл, то проблемы бы этой не было.



    Источник
     

Поделиться этой страницей