2014-10-01 5 views
0

Страницы cshtml не работают только в подкаталоге субдомена. У нас есть основной домен, где cshtml работает с папкой подкаталога «X», но у нас есть поддомен, где корневой каталог является подкаталогом основного домена, а cshtml там не работает. В IIS основной домен и поддомен имеют собственный пул приложений. Подкаталог «X» основного домена был преобразован в приложение, а страницы cshtml работают. Мы попытались выполнить тот же процесс, но мы имеем следующую ошибку:Расширение '.cshtml' не работает в подкаталоге

Этот тип страницы не обслуживается. Описание: Тип запрашиваемой страницы не подаётся, потому что это явно запрещено. Расширение «.cshtml» может быть неверным. Ознакомьтесь с приведенным ниже URL и убедитесь, что оно написано правильно.

Запрошенный URL: /test/test.cshtml

Это простой тестовый файл, который работает на основном домене подкаталоге, а не на суб-домена подкаталоге. Я думаю, что это родительский домен, который блокирует, «это было явно запрещено».

В отношении отображений обработчика расширение активно. (Windows Server 2012 R2, IIS 8.5)

На сервере установлена ​​.NET Framework 4. Также приложение работает в пуле приложений, настроенном на использование этой версии .NET Framework.

/дома/main_domain/X_subdirectory (работает cshtml)/подкаталог

/дома/main_domain/sub_domain (не работает cshtml)

У вас есть какие-нибудь идеи?

Следующий код дает мне внутреннюю ошибку:

<system.webServer> 
    <security> 
    <requestFiltering> 
     <fileExtensions> 
      <remove fileExtension=".cshtml" /> 
      <add fileExtension=".cshtml" allowed="true" /> 
     </fileExtensions> 
    </requestFiltering> 
    </security> 
</system.webServer> 

Ref: http://www.asp.net/web-pages/overview/more-resources/aspnet-web-pages-%28razor%29-troubleshooting-guide

Добавление это мой web.config не работает ни.

<configuration> 
    <appSettings> 
    <add key="webpages:Enabled" value="true" /> 
    </appSettings> 
</configuration> 

подкаталог, где он работает сконфигурирован как веб-приложения:

  1. В диспетчере IIS (Win + R и скопировать% SystemRoot% \ system32 \ Inetsrv \ iis.msc)

  2. на каталога в дереве слева (\ Сайты \ main_domain \ sub_directory

  3. элемент списка правой кнопкой мыши на нем, и я выбрал «Преобразовать в приложение»

+0

Вы пытаетесь для доступа к необработанному файлу '.cshtml' по сети? Зачем? '.Файлы cshtml' должны обрабатываться как часть механизма ASP.NET, полученный контент затем должен быть передан клиенту. Поскольку вы отметили это как MVC 4, это означает, что вы получаете доступ к представлениям, используя маршруты, определенные в приложении при запуске. Ваш запрос попадет в контроллер на основе запрошенного пути, который будет служить соответствующему виду. – mason

+0

Я пробовал, чтобы механизм ASP.NET смог обработать код файла .cshtml в подкаталоге. Я не использую представления. Простой код, как вы видите на этой странице: http://www.w3schools.com/aspnet/showfile_c.asp?filename=try_razor_cs_004 – nandoC

+0

Тот же код работает в другом подкаталоге, где этот каталог был преобразован в приложение через IIS, но с субдоменом не работает – nandoC

ответ

0

если вы пытаетесь Acces непосредственно к просмотру попробовать этот

"This type of page is not served." error when trying to browse on *.cshtml files

или пытаться работать с областями или сделать свой собственный маршрутизации

ASP.NET MVC 2: View Subfolders?

+0

Спасибо за ответ, но он не работает. Я добавил к моему web.config этого кода, но я получаю ту же ошибку: <конфигурации> <добавить ключ = "веб-страницы: Enabled" значение = "истинная" /> nandoC

+0

попробуйте установить конфигурацию в свой файл machine.config –