Default.aspx与IIS 6.0和.Net 4兼容吗? 我们已在IIS 6.0上部署了.net 4 asp.net站点 Default.aspx被配置为默认文档之一 当我们使用以下url访问站点时

Default.aspx与IIS 6.0和.Net 4兼容吗? 我们已在IIS 6.0上部署了.net 4 asp.net站点 Default.aspx被配置为默认文档之一 当我们使用以下url访问站点时,asp.net,visual-studio-2010,iis-6,asp.net-4.0,Asp.net,Visual Studio 2010,Iis 6,Asp.net 4.0,http://testsite 我们希望它能成功 http://testsite/Default.aspx 但我们得到的是404未找到错误。在.NET2.0上部署时,我们没有遇到此问题。服务器上唯一改变的是我们使用.NET4而不是.NET2.0 更新:我尝试了以下链接,但无效 服务器上的框架版本是.NET 4 RC。如果我们在服务器上安装最新的.NET4版本会有帮助吗 更新:问题现已解决。问题是我们使用的第三方上载控件在Web.Config中添加了自己的HttpHandler。此HttpHan

http://testsite

我们希望它能成功

http://testsite/Default.aspx

但我们得到的是
404未找到错误
。在.NET2.0上部署时,我们没有遇到此问题。服务器上唯一改变的是我们使用.NET4而不是.NET2.0

更新:我尝试了以下链接,但无效

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


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

检查服务器日志,它们可能会让您更好地了解发生了什么


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

我认为在4.0中,默认页面设置实际上存储在Web.config中。在IIS 7.0中,IIS读取web.config文件以确定对默认页面执行的操作。我认为IIS 6.0没有读取设置。

如果在IIS 6 Windows Server上运行新的.NET 4 framework,则会出现一些问题。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>
源错误:
第11行:
第12行:
第13行:
第14行:
第15行:
你有几个选择

  • 将.NET应用程序降级到3.5,VisualStudio2010使其变得非常简单。只要转到“网站属性->应用程序”选项卡,就会看到一个包含所有框架版本的下拉列表,选择3.5,VS2010将重新加载项目并修改web.config,如果添加了web服务引用,则可能需要删除它们并在3.5下重新添加它们
  • 配置IIS6和web配置以解决此问题。 我谈的是第二部分:

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

  • 但由于应用程序池的原因,您仍然可能面临相同的错误;对于两个不同的框架web应用程序,您可能有相同的应用程序池。 IIS 6不允许在同一实例中同时运行多个框架(意味着单个应用程序池不能用于两个不同的框架),就像IIS7一样,它可以创建针对不同框架的应用程序池

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

    Hence your new setting will be as below:
    
        <providerOption name="CompilerVersion" value="v3.5"/>
    
    因此,您的新设置如下所示:
    

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

    这里有一个链接,指向一个更完整的解决方案并对此进行了解释:


    要再次检查,您是否通过进入网站属性“文档”选项卡并将“default.aspx”添加到列表顶部来设置默认文档?说“默认文档”确实会让它听起来像你在IIS 7上的文档。0@Kellls:我们也可以为IIS 6.0设置默认文档。@Amitabh:Y