没有为扩展名“.html”注册的生成提供程序

没有为扩展名“.html”注册的生成提供程序。可以在 machine.config 或 web.config 中的 <compilation><buildProviders> 节注册一个。请确保所注册的提供程序具有包含值“Web”或“All”的 BuildProviderAppliesToAttribute 属性。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: 没有为扩展名“.html”注册的生成提供程序。可以在 machine.config 或 web.config 中的 <compilation><buildProviders> 节注册一个。请确保所注册的提供程序具有包含值“Web”或“All”的 BuildProviderAppliesToAttribute 属性。

决方法:

需要增加一项web.config 中system.web节点里配置节点:

<compilation defaultLanguage="c#" debug="true">
    <assemblies>
        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
<!-- 加上此节点,保证原本就是.html类型的文件能正常访问 -->
<buildProviders>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider" />
</buildProviders>    
</compilation>

  

protected void Application_Start(object sender, EventArgs e)

{

RegisterRoutes();

}

private void RegisterRoutes()

{

var factory = new WebServiceHostFactory();

RouteTable.Routes.Add(new ServiceRoute("KQ", factory, typeof(WS)));

RouteTable.Routes.Add(new ServiceRoute("OA", factory, typeof(FileList)));

RouteTable.Routes.Add(new ServiceRoute("RG", factory, typeof(Reg)));

RouteTable.Routes.MapPageRoute("xx", "sd", "~/no.aspx");

RouteTable.Routes.MapPageRoute("xx3", "i", "~/test.htm");

}