Asp.net mvc 4 扩展名“.cshtml”在子目录上不起作用

Asp.net mvc 4 扩展名“.cshtml”在子目录上不起作用,asp.net-mvc-4,razor,iis-8.5,Asp.net Mvc 4,Razor,Iis 8.5,cshtml页面不仅仅在子域的子目录中工作。我们有一个主域,其中cshtml在“X”子目录文件夹上工作,但我们有一个子域,其中根目录是主域的子目录,cshtml在那里不工作。在IIS上,主域和子域都有自己的应用程序池。主域的“X”子目录已转换为应用程序,cshtml页面正在工作。我们试图完成相同的过程,但出现以下错误: 不提供这种类型的页面。 描述:您请求的页面类型未被提供,因为它已被明确禁止。扩展名“.cshtml”可能不正确。请查看下面的URL,并确保其拼写正确 请求的URL:/test/t

cshtml页面不仅仅在子域的子目录中工作。我们有一个主域,其中cshtml在“X”子目录文件夹上工作,但我们有一个子域,其中根目录是主域的子目录,cshtml在那里不工作。在IIS上,主域和子域都有自己的应用程序池。主域的“X”子目录已转换为应用程序,cshtml页面正在工作。我们试图完成相同的过程,但出现以下错误:

不提供这种类型的页面。 描述:您请求的页面类型未被提供,因为它已被明确禁止。扩展名“.cshtml”可能不正确。请查看下面的URL,并确保其拼写正确

请求的URL:/test/test.cshtml

这是一个简单的测试文件,可以在主域子目录下工作,但不能在子域子目录下工作。我认为是父域阻止了它,它被明确禁止了

在处理程序映射上,扩展处于活动状态。Windows Server 2012 R2,IIS 8.5

服务器已安装.NET Framework 4。此外,应用程序正在配置为使用该版本的.NET Framework的应用程序池中运行

/home/main\u domain/X\u子目录使用cshtml

/home/main\u domain/sub\u domain/subdirectory无法使用cshtml

你有什么想法吗

以下代码向我提供了一个内部错误:

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

将此添加到我的web.config也不起作用

<configuration>
  <appSettings>
    <add key="webpages:Enabled" value="true" />
  </appSettings>
</configuration>
其工作的子目录配置为Web应用程序:

在IIS管理器上Win+R并复制%systemroot%\system32\inetsrv\IIS.msc

在左侧\Sites\Main\u domain\sub\u目录树中的目录上

列表项右键单击它,我选择了转换为应用程序


如果您试图直接访问视图,请尝试以下操作

或者尝试与区域合作,或者制定自己的路线


您正在尝试通过网络访问raw.cshtml文件吗?为什么?cshtml文件应该作为ASP.NET引擎的一部分进行处理,然后将生成的内容提供给客户端。因为您已经将其标记为MVC4,这意味着您可以在启动时使用应用程序中定义的路由来访问视图。您的请求将根据请求的路径命中一个控制器,该路径将提供适当的视图。我尝试了ASP.NET引擎将能够处理子目录中.cshtml文件的代码。我不使用视图。您在本页中看到的一个简单代码:相同的代码适用于其他子目录,其中该目录已通过IIS转换为应用程序,但子域不起作用。如果您使用的是.cshtml文件,则您使用的是视图。您需要按照我所描述的配置路由,以便引擎处理.cshtml文件,并将生成的HTML发送到客户端。不,不是web.config。去做任何MVC教程,它可能会涵盖控制器、视图和路由的基础知识。谢谢你的回复,但它不起作用。我在我的web.config中添加了这段代码,但我得到了相同的错误:尝试将配置放在machine.config中