Попытайтесь использовать что-то вроде этого:
include(dirname(__FILE__).'/../file.php')
Проблема с родственником включает, то, если Вы не будете в рабочем каталоге, то Вы ожидаете при выполнении файла они перестанут работать. Помните, они относительно getcwd (), не местоположение файла. Используя dirname (ФАЙЛ) обманывают, означает, что они заканчивают относительно своего фактического местоположения на диске.
Обратите внимание, что, если Вы используете 5.3.x или выше, можно использовать DIR вместо dirname (ФАЙЛ)
У нас была такая же ошибка на новом сервере.
Причина заключалась не в политике безопасности IIS по умолчанию, хранящейся в applicationHost.config
, как было предложено в другом ответе (хотя мы это проверили). Причина в том, что мы установили IIS без поддержки ASP.NET (роль ASP.NET 4.5)!
Когда мы установили недостающую поддержку ASP.NET, наше приложение просто запустилось без каких-либо изменений в конфигурации.
Заключение:
Дважды проверьте, установлена ли у вас роль ASP.NET вместе с IIS, если вы получите эта ошибка.
Чтобы установить роль ASP.NET в Windows Server:
Веб-сервер (IIS)
-> Веб-сервер
-> Разработка приложений
Чтобы установить роль ASP.NET в клиенте Windows:
Internet Information Services
-> World Wide Web Services
-> Функции разработки приложений
Ну, он говорит вам, что не так. Раздел system.webServer / Handlers
заблокирован где-то еще, что означает, что вы не можете изменить его в файле web.config
на текущем уровне (возможно, на веб-сайте).
Либо удалите:
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
из вашего файла web.config
, либо узнайте, где он был заблокирован, и измените его.
Вероятно, он заблокирован в файле applicationHost.config
. Его можно найти здесь: % windir% \ system32 \ inetsrv \ config \
. Откройте его в текстовом редакторе и найдите строку типа
<section name="handlers" overrideModeDefault="Deny" />
. Измените атрибут overrideModeDefault
на Разрешить
. Кроме того, вы можете использовать appcmd.exe
, чтобы разблокировать раздел для конкретный сайт или приложение, например:
appcmd.exe unlock config "WebSiteName/app" -section:system.webServer/Handlers
Где «WebSiteName» - это имя веб-сайта, а «/ app» - путь к вашему приложению. Чтобы разблокировать его для всего веб-сайта:
appcmd.exe unlock config "WebSiteName" -section:system.webServer/Handlers