我已经将我的网站升级到.Net4但是在请求.cshtml文件时(即使它是没有剃刀的纯HTML)我收到连接拒绝错误。有什么遗漏?
更新:更改了一些内容,现在我收到“此类页面未提供”错误。我认为.Net4就是必需的。
答案 0 :(得分:8)
原来这只是在bin目录中有正确的文件和web配置中的条目。这是文件列表:
这就是我在web.config中所需要的:
<compilation>
<assemblies>
<add assembly="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
<buildProviders>
<add extension=".cshtml" type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor"/>
</buildProviders>
</compilation>
答案 1 :(得分:3)
除了.NET 4.0之外,还需要为剃刀提供正确的.dll。如果安装了Visual Studio 2010 SP1,则可以右键单击Web项目并选择Add Deployable Dependencies。这将在您发布站点时将所需的.dll复制到您的bin文件夹。如果尚未安装SP1,则需要手动配置要发布的.dll。 This帖子很好地写了hw来做它。
答案 2 :(得分:2)
查看this post。
答案 3 :(得分:2)
对我来说,获取 IIS 8 来提供.cshtml页面只是选择要在Windows 8上安装的正确Windows功能。
从控制面板中搜索“功能”。然后单击“打开或关闭Windows功能”。当然,您必须“检查(安装)Internet信息服务。我认为您还需要考虑检查:
我可能包含了一项额外的功能。我知道我遗漏了一些很好的东西,比如记录和跟踪来帮助调试。
如果IIS仍然没有提供Razor语法页面(.cshtml),那么请查找更多要安装的IIS功能,因为我认为所有我必须做的就是选择正确的IIS功能。
我犯的另一个错误是设置了网站的绑定,我想我应该在主机框中输入一个名字。但这使得IIS可以在互联网上访问该网站,如果它可以找到它的话。因此,对于简单的设置,请将主机留空。网站名称在其他地方处理。其他地方是域名注册商的域名服务器(DNS)。
因此,除了考虑其他答案之外,这个答案可能会有所帮助。
答案 4 :(得分:1)
应该通过应用Danny所述的正确应用程序池来修复,确保您没有在新的.Net 4.0应用程序池上运行任何.Net 2/3/3.5站点,否则您将收到错误消息。我建议创建一个新的.Net 4.0应用程序池,然后将新站点设置为此。
哦,让IIS6运行.net 4你需要遵循这个guide。
IIS也可能不知道文件类型。在这种情况下,您需要将其添加到映射中(这也允许您进行自定义扩展)。
选择您的网站&gt;主页目录&gt;配置(按钮)&gt;然后插入一个新的映射。将.cshtm映射到c:\ windows \ microsoft.net \ framework \ v4.0.30319 \ aspnet_isapi.dll限制为GET,HEAD,POST,DEBUG
如果您需要添加映射,主要是.net 4的安装无法正常工作,您需要添加所有映射。