Я надеюсь, что это поможет кому-то еще, так как это сводило меня с ума. После того, как я нашел разные кусочки информации здесь и там, здесь и в других местах, я наконец-то придумал следующее исправление. Обратите внимание, что я не создаю динамически эту панель обновлений здесь или где-либо еще, и большая часть информации там была связана с динамическим созданием этого элемента управления, чего у меня не было.
Я использовал панель обновления внутри пользовательского веб-элемента управления, который использовался на странице, унаследованной главной страницей с менеджером сценариев. Я не знаю, было ли это комбо причиной его возникновения, но именно так я и исправил (в пользовательском веб-элементе управления, где используется панель обновления):
protected override void OnInit(EventArgs e)
{
ScriptManager sm = ScriptManager.GetCurrent(this.Page);
MethodInfo m = (
from methods in typeof(ScriptManager).GetMethods(
BindingFlags.NonPublic | BindingFlags.Instance
)
where methods.Name.Equals("System.Web.UI.IScriptManagerInternal.RegisterUpdatePanel")
select methods).First<MethodInfo>();
m.Invoke(sm, new object[] { updatePanel });
base.OnInit(e);
}