2014-10-08 2 views
0

Метод моей страницы вызывается дважды перед первым отображением. В обоих случаях IsPostBack == false. У меня есть AutoEventWireup="true" комплект. Вот два трассировки стека для того, когда его называют:Page_Init(), вызываемый дважды

Первый звонок:

G2.dll!Ctron.UI.Common.BreakoutDialog.Page_Init(object sender, System.EventArgs e) Line 46 C# 
System.Web.dll!System.Web.Util.CalliEventHandlerDelegateProxy.Callback(object sender, System.EventArgs e) Unknown 
System.Web.dll!System.Web.UI.Control.OnInit(System.EventArgs e) Unknown 
System.Web.dll!System.Web.UI.Page.OnInit(System.EventArgs e) Unknown 
CXGlobal.dll!Ctron.UI.CtronDialog.OnInit(System.EventArgs e) Line 27 C# 
System.Web.dll!System.Web.UI.Control.InitRecursive(System.Web.UI.Control namingContainer) Unknown 
System.Web.dll!System.Web.UI.Page.ProcessRequestMain(bool includeStagesBeforeAsyncPoint, bool includeStagesAfterAsyncPoint) Unknown 
System.Web.dll!System.Web.UI.Page.ProcessRequest(bool includeStagesBeforeAsyncPoint, bool includeStagesAfterAsyncPoint) Unknown 
System.Web.dll!System.Web.UI.Page.ProcessRequest() Unknown 
System.Web.dll!System.Web.UI.Page.ProcessRequestWithNoAssert(System.Web.HttpContext context) Unknown 
System.Web.dll!System.Web.UI.Page.ProcessRequest(System.Web.HttpContext context) Unknown 
App_Web_g2ej3jrk.dll!ASP.common_breakoutdialog_aspx.ProcessRequest(System.Web.HttpContext context) C# 
System.Web.dll!System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() Unknown 
System.Web.dll!System.Web.HttpApplication.ExecuteStep(System.Web.HttpApplication.IExecutionStep step, ref bool completedSynchronously) Unknown 
System.Web.dll!System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(System.Exception error) Unknown 
System.Web.dll!System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(System.Web.HttpContext context, System.AsyncCallback cb, object extraData) Unknown 
System.Web.dll!System.Web.HttpRuntime.ProcessRequestInternal(System.Web.HttpWorkerRequest wr) Unknown 
System.Web.dll!System.Web.HttpRuntime.ProcessRequestNoDemand(System.Web.HttpWorkerRequest wr) Unknown 
System.Web.dll!System.Web.Hosting.ISAPIRuntime.ProcessRequest(System.IntPtr ecb, int iWRType) Unknown 
System.Web.dll!System.Web.Hosting.ISAPIRuntime.System.Web.Hosting.IISAPIRuntime2.ProcessRequest(System.IntPtr ecb, int iWRType) Unknown 
[AppDomain Transition] 

Второй вызов:

G2.dll!Ctron.UI.Common.BreakoutDialog.Page_Init(object sender, System.EventArgs e) Line 46 C# 
System.Web.dll!System.Web.Util.CalliEventHandlerDelegateProxy.Callback(object sender, System.EventArgs e) Unknown 
System.Web.dll!System.Web.UI.Control.OnInit(System.EventArgs e) Unknown 
System.Web.dll!System.Web.UI.Page.OnInit(System.EventArgs e) Unknown 
CXGlobal.dll!Ctron.UI.CtronDialog.OnInit(System.EventArgs e) Line 27 C# 
System.Web.dll!System.Web.UI.Control.InitRecursive(System.Web.UI.Control namingContainer) Unknown 
System.Web.dll!System.Web.UI.Page.ProcessRequestMain(bool includeStagesBeforeAsyncPoint, bool includeStagesAfterAsyncPoint) Unknown 
System.Web.dll!System.Web.UI.Page.ProcessRequest(bool includeStagesBeforeAsyncPoint, bool includeStagesAfterAsyncPoint) Unknown 
System.Web.dll!System.Web.UI.Page.ProcessRequest() Unknown 
System.Web.dll!System.Web.UI.Page.ProcessRequestWithNoAssert(System.Web.HttpContext context) Unknown 
System.Web.dll!System.Web.UI.Page.ProcessRequest(System.Web.HttpContext context) Unknown 
App_Web_g2ej3jrk.dll!ASP.common_breakoutdialog_aspx.ProcessRequest(System.Web.HttpContext context) C# 
System.Web.dll!System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() Unknown 
System.Web.dll!System.Web.HttpApplication.ExecuteStep(System.Web.HttpApplication.IExecutionStep step, ref bool completedSynchronously) Unknown 
System.Web.dll!System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(System.Exception error) Unknown 
System.Web.dll!System.Web.HttpApplication.ResumeStepsFromThreadPoolThread(System.Exception error) Unknown 
System.Web.dll!System.Web.HttpApplication.AsyncEventExecutionStep.OnAsyncEventCompletion(System.IAsyncResult ar) Unknown 
System.Web.dll!System.Web.HttpAsyncResult.Complete(bool synchronous, object result, System.Exception error, System.Web.RequestNotificationStatus status) Unknown 
System.Web.dll!System.Web.SessionState.SessionStateModule.PollLockedSessionCallback(object state) Unknown 
mscorlib.dll!System.Threading.TimerQueueTimer.CallCallbackInContext(object state) Unknown 
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown 
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown 
mscorlib.dll!System.Threading.TimerQueueTimer.CallCallback() Unknown 
mscorlib.dll!System.Threading.TimerQueueTimer.Fire() Unknown 
mscorlib.dll!System.Threading.TimerQueue.FireNextTimers() Unknown 
mscorlib.dll!System.Threading.TimerQueue.AppDomainTimerCallback() Unknown 
[Native to Managed Transition]  

Разница происходит в точке, где System.Web.HttpApplication.ResumeStepsFromThreadPoolThread() вызовы ResumeSteps() снова и что в конечном итоге снова вызывает Page_Init().

+0

http://stackoverflow.com/questions/1138505/asp-net-page-init-fired-twice – Hillboy

+0

@Hillboy, спасибо, я видел это, но ничто из этого не применялось. – ariscris

ответ

0

Две вещи, которые привели к тому, что это произошло со мной;

  1. У вас есть пустой элемент src в теге изображений HTML, который эффективно делает другой запрос на ту же страницу. Например,
  2. Проводятся две серии событий. В VB это происходит, когда у вас есть явное предложение handles для метода, и оно также подключается через конструктор. Возможно, вы предпочитаете напрямую подключать свои события и отключать автоматическое подключение к событиям (это также относится к C#).

Это может быть много вещей, но ярлык img случается очень часто.

+0

Если это было # 1, я должен увидеть второй сетевой запрос в F12 Developer Tools, верно? Я не вижу. # 2: Я устанавливаю 'AutoEventWireup =" false "' в ASPX и 'this.Init + = новый System.EventHandler (this.Page_Init);' конструктору, и у меня все тот же результат. – ariscris