NickCraver / StackExchange.Exceptional

Error handler used for the Stack Exchange network
https://nickcraver.com/StackExchange.Exceptional/
Apache License 2.0
862 stars 170 forks source link

top-bg.png is 404ing #57

Closed cottsak closed 8 years ago

cottsak commented 9 years ago

Does this happen for anyone else? It's not a big deal but it does mean you can't see the page header. And no one likes 404s in the console if it can be avoided right?

NickCraver commented 8 years ago

I can't reproduce this here no matter the combination - do you have a route blocking it perhaps?

DejanMilicic commented 8 years ago

I am using Exceptional with Umbraco and I am getting this error

cottsak commented 8 years ago

Vindicated! #iamnotcrazy :dizzy_face:

DejanMilicic commented 8 years ago

I tried accessing both via exceptions.axd and via configured route and in both cases the result is the same - top-bg.png is not found. What is particular interesting to me is that no other resource is problematic, just this one.

cottsak commented 8 years ago

This fixes it! http://stackoverflow.com/a/11435677/56145 If you don't have runAllManagedModulesForAllRequests="true" then you should be able to repo this problem.

I discovered this accidentally. Any advice as to what the fix should be now @NickCraver ?

cottsak commented 8 years ago

Interestingly, this also fixes it (without runAllManagedModulesForAllRequests="true" present): http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html

CptRobby commented 8 years ago

Interesting find, @cottsak! I'll have to bookmark that last page for future reference. :wink:

That does indicate though that it was a configuration issue on your machine. I think the best solution is installing the hot fix that Phil Hartmann mentioned in the comments (http://support.microsoft.com/kb/980368).

I did look through the code and the image is served up using the HandlerFactory, so obviously that handler wasn't being run because IIS saw the .png extension and tried serving it directly. It's interesting though that the Styles.css file (which is what actually specifies the top-bg.png background image) was able to be served through the HandlerFactory without any apparent issue. I wonder if the preCondition="integratedMode" setting on the HanderFactory in web.config has something to do with that. Like if IIS by default handles .css files through the integrated pipeline, but then switches to the classic pipeline for .png files. :confused:

cottsak commented 8 years ago

That does indicate though that it was a configuration issue on your machine.

Based on what?

The change is web.config which is part of the app not any machine-based config!

I'm not saying that runAllManagedModulesForAllRequests="true" should be reccomened to get this lib to work. The real fix is probably far more specific. But the point is that there is very likely an application-level config change required to make this image load. You and @NickCraver may not be reproducing the behaviour because in your example project you're using to test, certain other config means that it works.

Like it seems you're suggesting, the root issue probably lies in how the HandlerFactory works in various apps.

DejanMilicic commented 8 years ago

In Umbraco project where I am experiencing this problem I already have runAllManagedModulesForAllRequests="true" So it does not solve problem for me.

CptRobby commented 8 years ago

@cottsak - Web.config is not part of StackExchange.Exceptional, it is part of your website. The web.config in the Samples.MVC4 project contains the runAllManagedModulesForAllRequests="true" setting. Furthermore, the fact that MS has released a hot fix for this issue indicates that it is primarily an issue with IIS itself. There is thus no code that can be changed from within StackExchange.Exceptional that can fix this issue. Thus, it is local to your machine/application.

I hope you don't take this as assigning blame. I am doing nothing of the sort, just stating the fact that nothing can be done from this end to fix the issue. But it could be documented as something to watch out for. :v::smiley:

CptRobby commented 8 years ago

@DejanMilicic Are you using IIS6, or are you running in Classic Pipeline mode? It appears that handling native requests (for things like .png files) is only possible when running on IIS7+ in Integrated Pipeline mode.

And I'm assuming that Umbraco is a CMS (never heard of it before, that's just the first result in Google). Is there a reason you keep mentioning that?