The relative virtual path MyUserControl.ascx is not allowed here error in Web.Config

Problem

I am trying to add a user control in Web.Config file as below,

<controls>
<add tagPrefix="MyControl" tagName="MyUserControl" src="/MyUserControl.ascx"/>
</controls>

It gives me following error,

Configuration Error: The relative virtual path 'MyUserControl.ascx' is not allowed here.

Solution

To resolve this issue, move your WebUserControl from root directory to a sub directory. For example in my case, I would copy MyUserControl.ascx to sub folder "Controls". So my Web.Config entry should look like below.

<controls> 
<add tagPrefix="MyControl" tagName="MyUserControl" src= "~/Controls/MyUserControl.ascx"/> 
</controls> 

Notice how value of src parameter is changed.

~ indicates relative path from root folder.
This is one of the limitation of ASP.Net application. It does not allow you to register user control in Web.Config file unless it's in a subfolder.