dnnsoftware / Dnn.Platform

DNN (formerly DotNetNuke) is the leading open source web content management platform (CMS) in the Microsoft ecosystem.
https://dnncommunity.org/
MIT License
1.03k stars 751 forks source link

404 errors are creating 503 errors #3346

Open thabaum opened 4 years ago

thabaum commented 4 years ago

Description of bug

When navigating to a page that does not exist you get a 503 DNN error for a 404 error page load along with 2 errors in Admin log related to the site/page.

Steps to reproduce

List the steps to reproduce the behavior:

  1. Open your browser to a page that does not exist on your DNN website.
  2. See Current Result

Current result

DNN Error : No sites currently exist for this installation. - 503 Service Unavailable

Expected result

404 error page that uses the same site skin.

Screenshots

If applicable, provide screenshots to help explain your problem. image

image

Error log

A simple Page 404 Admin Log error for page is shown.

image

And this error follows after:

` Page Load Exception

DefaultDataProvider:DotNetNuke.Data.SqlDataProvider, DotNetNuke Message:Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the \\ section in the application configuration.

StackTrace:

InnerMessage:Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the \\ section in the application configuration.

InnerStackTrace:

at System.Web.UI.Page.get_Session() at DotNetNuke.Framework.CachePageStatePersister.Save() at System.Web.UI.Page.SaveAllState() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)`

Additional context

I do not like seeing it say "DNN Error" i would rather it say Application Error. Maybe just sorry you found a page that does not exist or something that covers a lot of issues. The DNN error is being logged, no real need for a visitor to see DNN. Or this could be set to the website Portal Name Website Error. Something more generic or related to the website that has the issue.

Affected version

Affected browser

valadas commented 4 years ago

I cannot reproduce as explained. Can you add some more steps to reproduce, is the url pointing to a correct site but an inexisting page? If the url is pointing to an invalid site, then this is something different... Can you explain step by step how to get to this state please.

leedavi commented 4 years ago

I got this error, but I'm unsure if my error is related. I'll make a comment to help others to trace through this problem.

I had a new install of DNN9.4.4 for development purpose.

I installed some code on the desktopmodules folder.

I used the "Create new Module" using a manifesto.

Everything works OK.

I went into edit mode to added the new module to the page.

I selected the modules and CRASH!!! This error was the only thing on the website.

My problem was caused by me NOT updating the SQL SPROC for the modules and 1 was missing.

I installed the missing SPROC and it website started to work again.

valadas commented 4 years ago

@leedavi this would be different, it would not be a missing page, a 404 falsly reported as a 503...

leedavi commented 4 years ago

Understood, just thought it might help any investigate. The reason you cannot recreate might be because of a Database error, that doesn't exist on your system.

thabaum commented 4 years ago

This is the only issue still outstanding other than the journal link problem from a user perspective in my opinion of what I have been most focused on. I am testing 9.5 RC this issue still exists. Everything else so far has been working great. The errors on my test site I have yet to see one other than this one. To reproduce this error simply put in your yourdomain.com/badurl and this error will be on your screen unless you have a page named badurl of coarse. That is some good food for thought as it should be using the 404 page I have created or the dnn 404 default. But instead it is giving an installation error with a 503 service unavailable.

When connecting to a page without url redirection or page created for it you end up with an installation error instead of the 404. Something possibly with the 404 error handler not getting the portal id?

thabaum commented 4 years ago

Steps to reproduce if unable:

  1. Enter in your browser yourdomain.com/badurl
  2. Assuming you do not have a page named badurl you will get this error. image

Let me know if I am only one with this issue happens on multiple server IIS versions and SQL DB versions and DNN Versions.

I can have a 404 page created or not. I have made this error happen on all dnn instances upgraded and fresh 9.4.4 installations.

Also notice it says "DNN Error" instead of just "Error" or "Site Error" I believe this could be fixed at same time removing the DNN as it is not something I believe needs to be shown to visitors unless they need to know about the site being hosted using DNN. On the side of security I would remove or change the DNN for any errors being posted to normal visitors.

NOTE: I do have other modules installed on all of these portals I have tested. I will create a fresh install and see if any difference. Then maybe I can relate this to an installed module issue.

Also one other point is I do see a 404 error in the admin logs, but the page being displayed is not correct for some reason.

david-poindexter commented 4 years ago

@valadas and @thabaum - I have been able to confirm this behavior, but only on an upgraded instance. I'll go ahead and move this issue through triage and hopefully someone will have the time to look into this for the next release.

mitchelsellers commented 4 years ago

Was a 404 error page set in the IIS under WebServer?

david-poindexter commented 4 years ago

@mitchelsellers not in my case.

I do have some additional information to provide:

thabaum commented 4 years ago

we have a winner thank you @david-poindexter for making this clear. This is the issue I have been having. I don't think it matters which theme you use, just using a custom 404 page.

I get a lot of requests for example bots hitting WP admin and other common folders people have in sites such as "backup" and they plague my error logs on some sites.

thabaum commented 4 years ago

I am going to dig deeper into this issue if I can over the next week if I have time... I am getting testing environment and other things together to get to work here again. Expect another "push" forward coming over the next month.

thabaum commented 4 years ago

I resolved this issue by changing from memory to page Host > Performance Setting.

image

Any reason "memory" would cause 404 errors to create an application error?

mitchelsellers commented 4 years ago

Yes, Memory Page State SHOULD NOT BE USED!

bdukes commented 4 years ago

Do we need to create a new issue to remove it?

david-poindexter commented 4 years ago

That would honestly be a great change @bdukes - to remove the option altogether.

alibahosseini commented 2 years ago

@thabaum thank you for your answer . my problem was that when i enter the name of the page that doesnt exist in my site. site shows me this message "No sites currently exist for this installation. - 503 Service Unavailable" and i follow your answer and its was totally works for me.