Unable to cast object of type 'X' to type

2019-01-20 10:58发布

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?

5条回答
狗以群分
2楼-- · 2019-01-20 11:28

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

查看更多
再贱就再见
3楼-- · 2019-01-20 11:35

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.

查看更多
在下西门庆
4楼-- · 2019-01-20 11:43

Deleting your temporary ASP.NET files (everything in C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files) makes this go away... for a while.

查看更多
beautiful°
6楼-- · 2019-01-20 11:51

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.

查看更多
登录 后发表回答