Ошибка «Отказано в доступе» при загрузке файлов в FCKEditor - PullRequest
0 голосов
/ 08 мая 2009

Недавно я перенес приложение asp.net из windows 2003 / IIS 6 в windows IIS7. Других изменений нет, но теперь загрузка файла для fckeditor больше не работает. Любой знает очевидную ошибку, которую я сделал здесь. :)

Спасибо

Ответы [ 4 ]

4 голосов
/ 08 мая 2009

Наиболее вероятная проблема заключается в том, что разрешения необходимо обновить для целевой папки. Убедитесь, что IUSR имеет разрешения на создание / запись для каталога загрузки.

1 голос
/ 05 декабря 2009

Может быть, это поможет.

Я тоже не мог заставить его работать. У меня были установлены все разрешения. При отладке я обнаружил, что файл frmupload.html не имеет права на выполнение файла isapi.dll.

В IIS 7.0 я зашел на веб-сайт с левой стороны и выделил его. Затем на правой панели я нажал на сопоставления обработчиков. Вверху я заметил, что isapi и cgi отключены наверху.

Я посмотрел ниже и увидел все включенные обработчики. Я также заметил, что для * .html не было ни одного, а для *. В любом случае, я щелкнул правой кнопкой мыши в любом месте нижней панели, где находятся включенные обработчики, и у меня появилось контекстное меню. РЕДАКТИРОВАТЬ ФУНКЦИОНАЛЬНЫЕ РАЗРЕШЕНИЯ - это опция, на которую вы хотите нажать. Затем вы увидите флажки для чтения, сценария и выполнения. Я заметил, что выполнение не было проверено, поэтому я проверил его.

Теперь ISAPI и CGI стали активными в списке. Я попытался загрузить с помощью FCKeditor, и это сработало. Просто убедитесь, что вы загружаете файл нужного типа в нужную область, иначе вы можете получить неверный файл или сообщение о неверном типе файла.

ОДНАКО, я заметил, что получаю новую ошибку. SYS - неопределенное сообщение об ошибке на моих веб-страницах. Это ошибка JavaScript, которая обычно происходит, когда он не может что-то найти. Существует множество причин, по которым вы можете получить это сообщение об ошибке, если воспользуетесь Google. В этом случае это было потому, что я использовал Vista IIS7.0 для включения ISAPI с разрешениями на выполнение. Он вошел в мой конфигурационный файл и внес корректные изменения в настройки для разрешения на выполнение, однако стер все настройки моего обработчика !!!!

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

Вот часть моего файла webconfig на веб-сервере VISTA IIS7, до и после:

WebConfig ДО: включение исполнения на cgi и isapi в VISTA IIS 7.0 web.config

<!-- 
    The system.webServer section is required for running ASP.NET AJAX under Internet
    Information Services 7.0.  It is not necessary for previous version of IIS.
-->
<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
        <remove name="ScriptModule"/>
        <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </modules>
    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <remove name="ScriptHandlerFactory"/>
        <remove name="ScriptHandlerFactoryAppServices"/>
        <remove name="ScriptResource"/>
        <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </handlers>
</system.webServer>
<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

ПОСЛЕ: обратите внимание на

добавлено, и все мои обработчики исчезают. Я просто прочитал их, и это сработало.

<!-- 
    The system.webServer section is required for running ASP.NET AJAX under Internet
    Information Services 7.0.  It is not necessary for previous version of IIS.
-->
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
        <remove name="ScriptModule" />
        <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </modules>
    <handlers accessPolicy="Read, Execute, Script">
    </handlers>
</system.webServer>
<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

Я нахожусь на компьютере разработчика VISTA, поэтому я не рассматривал никаких проблем безопасности при открытии Execute. Надеюсь, это поможет.

0 голосов
/ 08 мая 2009

Убедитесь, что у пользователя asp.net и iisuser_machinename есть права.

0 голосов
/ 08 мая 2009

Как и Sohnee говорит, что у него самые привлекательные разрешения, также убедитесь, что папка «uploads» действительно существует в вашей «публичной» папке (я не уверен, где это находится в ASP).

...