System.InvalidOperationException: Stack empty

24

Once running ASP.NET 4.x application built in Visual Studio 2013 I am getting the below exception.

I have tried to disable the PageInspector by removing page inspector assembly

<assemblies>
    <remove assembly="Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</assemblies>

and adding this configuration to app settings

<appSettings>
    <add key="PageInspector:ServerCodeMappingSupport" value="Disabled"/>
</appSettings>

Nothing helped.

[/Pages/TargetPage.aspx] System.Web.HttpException (0x80004005): Exception of type 'System.Web.HttpException' was thrown. ---> System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.InvalidOperationException: Stack empty.
   at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
   at System.Collections.Generic.Stack`1.Pop()
   at Microsoft.VisualStudio.Web.PageInspector.Runtime.WebForms.SelectionMappingRenderTraceListener.EndRendering(TextWriter writer, Object renderedObject)
   at System.Web.UI.RenderTraceListener.RenderTraceListenerList.EndRendering(TextWriter writer, Object renderedObject)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.LegacyPageAsyncInfo.<CallHandlersPossiblyUnderLock>b__32(Object o)
   at System.Web.HttpContext.InvokeCancellableCallback(WaitCallback callback, Object state)
   at System.Web.UI.Page.LegacyPageAsyncInfo.CallHandlersPossiblyUnderLock(Boolean onPageThread)
   at System.Web.UI.Page.LegacyPageAsyncInfo.CallHandlers(Boolean onPageThread)
   at System.Web.HttpAsyncResult.End()
   at System.Web.UI.Page.LegacyAsyncPageEndProcessRequest(IAsyncResult result)
   at System.Web.UI.Page.AsyncPageEndProcessRequest(IAsyncResult result)

Is there any way how to avoid the exception? Thanks a lot for any suggestions

asp.net
asp.net-4.0
visual-studio-2013
asked on Stack Overflow Dec 5, 2013 by mybrave • edited Dec 5, 2013 by mybrave

12 Answers

25

I disabled browser link in VS 2013 and was able to see the actual cause of the error. It is usually something underlying when browser link is set. You can see how to disable it here: http://www.poconosystems.com/software-development/how-to-disable-browser-link-in-visual-studio-2013/

answered on Stack Overflow Oct 24, 2014 by Jason
23

This can happen if the AssociatedControlID on a label is associated with a control which can't be found.

answered on Stack Overflow Apr 25, 2016 by Sam Jones
9

There are multiple reasons why the

System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. -
System.InvalidOperationException: Stack empty.
Microsoft.VisualStudio.Web.PageInspector.Runtime.WebForms.SelectionMappingRenderTraceListener.EndRendering(TextWriter writer, Object renderedObject)
...

After adding as proposed:

 <appSettings>
   <add key="PageInspector:ServerCodeMappingSupport" value="Disabled"/>
   ...
 </appSettings>

I noticed I had duplicate selected item on a dropdown list creating the issue.

answered on Stack Overflow Jul 31, 2015 by fcm • edited Jul 31, 2015 by fcm
6

Hope this help somebody.

I was getting this error when my asp:panel has a default button say XYZ and I modified the name XYZ and forgot to change default button name in panel.

answered on Stack Overflow Dec 19, 2015 by Halim • edited Mar 22, 2016 by kamalpreet
4

I have found the problem. There was changed way how to generate IDs of controls in GridView from default to

ClientIDMode="Predictable" ClientIDRowSuffix="ID"

Which resulted in the exception. Not sure why the real exception was hidden by PageInspector stack empty. Just reverting the change to original resolved the issue.

Now the exception is different (but once GridView settings is back to original this disapper too)

System.ArgumentException: An entry with the same key already exists.
answered on Stack Overflow Dec 6, 2013 by mybrave
3

I've also seen this problem in some web apps running on dev machines using Visual Studio 2013 with "Browser Link" enabled.

In multiple cases that I have seen, leaving Browser Link enabled causes all sorts of issues, both client script and security warnings, and server exceptions like this one (annoying thing is that it appears to be enabled by default, thanks Msft!)

answered on Stack Overflow Oct 7, 2014 by nothingisnecessary
2

I had the same exception, but in my case the problem was the following was missing:

<form runat="server">
</form>
answered on Stack Overflow Jul 31, 2014 by Myster
2

In my case (ASP.NET 4.6, Visual Studio 2015) I commented an asp text control and added a new asp drop down list but did not updated the AssociatedControlID of the associated label.

on changing the AssociatedControlID to newly added asp drop down list ID my problem was fixed.

answered on Stack Overflow May 26, 2016 by Satbir
1

That Happend to me when I added a new <asp:Panel> to my page and set the DefaultButton to a button outside the panel (By mistake). Error fixed when I changed the DefaultButton to another one inside the panel.

answered on Stack Overflow Feb 17, 2017 by AmiNadimi
0

We started VisualStudio 2015 (vs2015) from VisualStudio 2012 solution file and while building all the projects didnot build. This was due to the Enable Browser Link option enabled by default. I disabled the Enable Browser Link option and Re-built the solution which built all the projects successfully. After this I fired up the url in a browser and Boom it worked! For those who have similar scenario like mine. give it a whirl !

answered on Stack Overflow Nov 22, 2016 by SitecoreSyed
0

In my case, because I had so many issues migrating a website from VS2002 to VS2015, I decided to create a new project on VS2015 and transfer all webforms from the old project (VS2002) to the new one (VS2015).

The new project had a Site.Master page, which already has a tag. Because I was transferring old webforms without modification, they already had a tag too, so each page trying to load had two tags inside.

When I removed the tag on each page, leaving only the one on Site.Master page, the problem was solved.

I hope this helps.

answered on Stack Overflow Aug 25, 2017 by Rolo
0

I face this problem while selecting different dropdown value and below is the solution of the problem

First clear the selected value for dropdown and then enable other dropdown value selection

dropdown.ClearSelection();
dropdown.Items.FindByValue(result.Birthday.Value.Year.ToString()).).Selected = true;
answered on Stack Overflow Apr 6, 2021 by hussains8

User contributions licensed under CC BY-SA 3.0