IIS 6.0和.Net 4的Default.aspx?

Ami*_*abh 7 asp.net iis-6 visual-studio-2010 asp.net-4.0

  1. 我们在IIS 6.0上部署了一个.net 4 asp.net站点.
  2. Default.aspx配置为默认文档之一.
  3. 当我们使用以下网址访问该网站时

http://testsite

我们期望它呈现

http://testsite/Default.aspx

但相反,我们得到了404 Not found error.它部署在.Net 2.0上时没有遇到这个问题.只有在服务器上发生变化的是我们使用.NET 4而不是.NET 2.0.

更新:我尝试了以下链接,但它没有工作.

让ASP.NET 4应用程序在IIS6上运行

服务器上的框架版本是.NET 4 RC.如果我们在服务器上安装最新的.NET 4版本会有帮助吗?

更新:此问题现已解决.问题是我们使用的第三方上传控件,它在Web.Config中添加了自己的HttpHandler.这个HttpHandler在.NET 4中开始失败.

小智 28

使用新的.NET 4框架,如果在IIS 6 Windows Server上运行它,会出现一些问题.IIS 6不允许您在IIS7之类的同一实例中运行多个框架,可以创建针对不同框架的应用程序池.当IIS 6在ASP.NET 2.0(3.0和3.5是超集,而不是框架)下运行时,如果应用程序是4.0,则会遇到此错误配置错误说明:处理为此请求提供服务所需的配置文件时出错.请查看下面的具体错误详细信息并相应地修改配置文件.分析器错误消息:无法识别的属性'targetFramework'.请注意,属性名称区分大小写.

Source Error: 
Line 11:     </configSections> 
Line 12:     <system.web> 
Line 13:         <compilation debug="true" targetFramework="4.0"> 
Line 14:         </compilation> 
Line 15:         <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>   </ system.web>
Run Code Online (Sandbox Code Playgroud)

你有几个选择;

  1. 将.NET应用程序降级到3.5,Visual Studio 2010使其变得非常简单.只需转到网站属性 - >应用程序选项卡,下载所有框架版本,选择3.5,VS2010将重新加载项目并修改web.config,如果添加了Web服务引用,则可能需要删除它们并在3.5下重新添加它们
  2. 配置IIS6和Web配置以解决问题.我处理第二部分:

  3. 在IIS 6控制台中,您需要右键单击您的项目并单击该属性并检查ASP.Net选项卡是否选择了Framework 4.如果没有选择框架4.

但是由于应用程序池,您可能仍会面临同样的错误; 您可能拥有两个不同框架Web应用程序的相同应用程序池.IIS 6不允许您在同一实例中运行多个框架(意味着单个应用程序池不能用于两个不同的框架),例如可以创建针对不同框架的应用程序池的IIS7.

  1. 要解决此问题,您需要创建应用程序池并将此应用程序池分配给框架4 Web应用程序.要分配应用程序池,请在IIS控制台中打开Web应用程序的"属性"部分,然后从下拉列表中单击之前创建的"主目录"选项卡和选择应用程序池.
  2. 这两个可能现在完全解决你的问题.您可以将错误视为"找不到404页面".虽然您在开发时可能会遇到任何问题.
  3. 基本上没有找到页面问题是IIS6隐藏的其他问题的原因.但你需要看到真正的原因.你在这里做的是转到IIS6控制台打开"web服务扩展节点",它位于"默认网站"节点的正下方.您将在那里看到整个ASP.Net框架列表,默认情况下这些框架可能被禁止,因此请选择ASP.Net Framework 4并单击允许按钮.现在浏览您的网站,在"404找不到页面"旁边出现其他错误.您可能会收到如下所列的错误:
  4. 提供程序选项中'compilerVersion'属性的值必须为'v4.0'浏览网站时会出现以下错误提供程序选项中'compilerVersion'属性的值必须为'v4.0'或更高版本如果要编译.NET Framework 4.0或更高版本.要为.NET Framework 3.5或更早版本编译此Web应用程序,请从Web.config文件的元素中删除"targetFramework"属性.要解决此问题,您需要修改您的Web配置文件,如下所示:

以前CompilerVersion值设置为v3.5,但我们已经将targetFranework更改为4.因此,根据上面的错误消息,如果要编译版本,则提供程序选项中的'compilerVersion'属性必须为'v4.0'或更高版本4.0或更高版本的.NET Framework.

Hence your new setting will be as below:

    <providerOption name="CompilerVersion" value="v3.5"/>
Run Code Online (Sandbox Code Playgroud)

希望这将解决您在IIS6上的ASP.Net 4迁移和托管问题.

  • 这解决了我的问题:"默认情况下,这些框架可能被禁止,因此请选择ASP.Net Framework 4并单击"允许"按钮".谢谢. (2认同)

Kel*_*lly 2

检查服务器日志,它们可能会让您更好地了解正在发生的情况。

您可以通过右键单击 IIS 中的网站并转到属性来找到日志文件的路径。然后转到“网站”选项卡,在“启用日志记录”下单击属性,将显示日志记录属性窗口,其中显示日志文件的路径。