Unable to cast object of type ‘X’ to type ‘X’ – ASP.NET

I am currently working with a ASP.NET Web site project in Visual Studio 2008 and everytime I make a change to code behind page for a user control and browse to page that is using the user contorl I get the following error:

Unable to cast object of type
‘ASP.basepage_master’ to type
‘ASP.basepage_master’.

I have to rebuild my entire solution to order to resolve this error. Has anyone else experienced this error and do they know how to resolve it?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Deleting your temporary ASP.NET files (everything in C:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files) makes this go away… for a while.

Method 2

That makes sense, from what I understand.

You’re making a change to the code-behind. In order for those changes to take effect, you’d need to build that project so that the code-behind can be compiled into the DLL file for that project. When you change the code-behind, and don’t build the project, you’ve essentially got two versions of that page, and ASP.Net can’t resolve the two versions. So, when you compile the class, the changes are reconciled into the DLL.

Method 3

If I stop and restarted IIS on my local workstation, I am able to resolve this issue.

Method 4

This blog posting describes the issue well:

http://professionalaspnet.com/archive/2007/04/09/Unable-to-cast-object-of-type-_2700_ASP.masterpage_5F00_master_2700_-to-type-_2700_ASP.masterpage_5F00_master_27002E00_.aspx

Method 5

Eurekaaa!! Got it… This one works…

When you grag drop the usercontrol or load it via the LoadControl method use a ’tilde’ in its path. E.g. this.LoadControl("~/MyUserControl.ascx");

The same applied for a control dropped on a page. Add the tilde to the declarative path of the user control in the aspx page.

We can call this as a bug in VS2005 and is fixed in VS 2008.

Reply me if this dosen’t work or needs more explanation. Alternatively, don’t forget to mark this as answer.

Method 6

I had this same issue, and I was finally able to get the site to build.

I had to create another Master Page for the ASP.NET project with a different name, copy and paste the content of the original into the new one, make all of my Child forms inherit from the new Master Page, and delete the old Master Page.

The website will run now. I don’t know how the debugger got confused and started using a cached object that didn’t exist. I tried everything to get it to release that cache (deleting the temp files under C:%USER%AppDataLocal and under C:WindowsMicrosoft.NET, renaming the Master Page, renaming the Master class, making changes to the files to force them to reload, rebuilding the solution, add the web.config option <compilation batch="false" debug="false"/>) except deleting the Master Page.

Deleting the Master Page fixed it for me, but I don’t understand why I had to do that.

Here is the thread where my struggles played out:

https://forums.asp.net/t/2172428.aspx


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x