Combres的路线(combres.axd)不起作用

时间:2010-06-30 14:49:40

标签: asp.net combres

我已经关注了文章http://www.codeproject.com/KB/aspnet/combres2.aspx

当我运行我的网站时,我无法让combres.axd工作?我知道combres正在运行,因为我的xml中的错误文件会导致错误。我在vista上运行ASP.NET 4.0 Web表单站点。

我的Combres XML设置是。

resourceSets url="~/combres.axd" defaultDuration="30" defaultVersion="auto" defaultDebugEnabled="auto"

我已经检查了web.config以获取所有正确的值。已从合并目录添加引用,并且全局ASX文件具有以下内容。

protected void Application_Start(object sender, EventArgs e)
        {
            RouteTable.Routes.AddCombresRoute("Combres");
        }

我还检查了在html源代码中创建的值。

href="/combres.axd/siteCss/309885723"

  src="/combres.axd/siteJs/408582048"

我没有收到任何错误或任何可以帮助我找出它不起作用的原因或我可能错过的内容。任何建议都会很棒。

6 个答案:

答案 0 :(得分:6)

第一次尝试让它工作时我遇到了同样的问题。

确保在调用之前添加Combres路由以忽略路由{resource} .axd。

正确:

RouteTable.Routes.AddCombresRoute("Combres");
RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

不正确:

RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
RouteTable.Routes.AddCombresRoute("Combres");

答案 1 :(得分:1)

首先,我建议将log4net挂钩到web.config中的combres记录器(不要忘记设置log4net的配置部分)

<log4net>
<logger name="Combres">
  <level value="ALL"/>
  <appender-ref ref="LogCombres" />
</logger>

<appender name="LogCombres" type="log4net.Appender.RollingFileAppender">
  <file value="Combres.log.txt"/>
  <appendToFile value="true"/>
  <maximumFileSize value="5000KB"/>
  <maxSizeRollBackups value="2"/>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d [%t] %-5p %c - %m%n"/>
  </layout>
</appender>
</log4net>

在你的global.asax中启动配置

log4net.Config.XmlConfigurator.Configure()

您应该详细记录正在发生的事情。如果没有弹出什么错误,请不要犹豫,带回一些日志输出

答案 2 :(得分:1)

由于某些原因,我们可以修复在debug = false模式下显示css的唯一方法是将combres.axd添加到web.config中的匿名访问

  <location path="combres.axd">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

答案 3 :(得分:0)

web.config中的模块设置是什么?检查runAllManagedModulesForAllRequests属性。

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

使用遗留的WebForms应用程序,我发现我没有这个设置,一旦我把它放入,combres.axd路由就可以了。

More on my question too

答案 4 :(得分:0)

这些是我在项目中所做的更改,并声明可以正常运行。

在Global.asax文件中添加以下行

using Combres;

在application_start方法

protected void Application_Start()
{
    RouteTable.Routes.AddCombresRoute("Combres");//Add this line
    RegisterRoutes(RouteTable.Routes);
} 

注释掉Combres.cs文件中的行。

答案 5 :(得分:0)

这也发生在我身上,但问题来自Yahoo.Yui.Compressor,他们在新版本1.6 *中更改了一个属性签名。

所以要修复它,我只需将Yahoo.Yui.Compressor降低到版本1.5。

我现在很高兴:)