I've encountered this error a few times with my own custom controls and with the AjaxToolkit when I was upgrading a legacy project with a UI refresh.
In both cases, I had added a .js reference in my <head> tag that resolved using <%= Page.ResolveUrl("my.js") %>. Apparently .Net doesn't like that when it tries to add a another header dynamically from a control (i.e. registering a new WebResource .css file).
Example:
<head id="headMain" runat="server">
<title></title>
<link rel="stylesheet" type="text/css" href="~/Content/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="~/Content/bootstrap-responsive.min.css" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" >
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" src="<%= Page.ResolveClientUrl("~/Scripts/jquery-1.8.1.min.js") %>"> </script>
<script type="text/javascript" src="<%= Page.ResolveClientUrl("~/Scripts/bootstrap.min.js") %>"> </script>
</head>
Fix the problem by changing it to:
<head id="headMain" runat="server">
<title></title>
<link rel="stylesheet" type="text/css" href="~/Content/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="~/Content/bootstrap-responsive.min.css" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" >
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<script type="text/javascript" src="<%= Page.ResolveClientUrl("~/Scripts/jquery-1.8.1.min.js") %>"> </script>
<script type="text/javascript" src="<%= Page.ResolveClientUrl("~/Scripts/bootstrap.min.js") %>"> </script>