2009-12-23 6 views
2

내 사용자를 내 사이트로 로깅하는 사용자 컨트롤이 있습니다. 이 사용자 정의 컨트롤은 모든 페이지의 오른쪽 상단에 빠른 로그인 상자로 배치됩니다. 문제는 프로덕션 서버에서 로그인 및 재설정을 위해 제공 한 LinkButton 클릭 이벤트가 포스트 백 이후에 OnClick 이벤트를 발생시키지 않는다는 것입니다. 마치 그것을하는 것을 잊어 버리는 것처럼.ASP.NET LinkButton OnClick 이벤트가 홈 페이지에서 작동하지 않습니다.

일반적으로 로컬 호스트에서 디버그를 실행할 때 (localhost의 릴리스에서 실행 중일 때)에는 발생하지 않는다는 점을 제외하면 디버그에는 이와 같은 문제가 없습니다. 내 프로덕션 서버 및 내 홈 페이지에서만 발생하는 것 같습니다. 다른 페이지에서 사용자 정의 컨트롤을 사용하여 로그인하려고하면 정상적으로 작동하며 OnClick 이벤트가 정상적으로 실행됩니다. 나는이 일을 디버깅 할 수있는 방법이 더 이상 모르고 Google에서 만난 모든 제안이 도움이되지 않기 때문에 여기서 당황하지 않습니다. 다음은 사용자 컨트롤에서 사용하는 마크 업입니다. 제안이나 도움은 크게 감사하겠습니다. LinkButton의 "Login"과 "Reset"은 전혀 작동하지 않습니다.

<asp:Panel ID="AnonPanel" runat="server" DefaultButton="Login"> 
<div id="welcome"> 
    <span class="welcome">Welcome </span><span class="guest1">Guest!</span>&nbsp; <span><a href="/login.html" class="guest">Login </a></span>|<span ><a href="/new-account-registration.html" class="guest"> Signup</a></span> 
</div> 
<div id="input_boxarea"> 
    <div id="user_id"> 
     <asp:TextBox ID="UserName" runat="server" CssClass="input_box1"></asp:TextBox> 
    </div> 
    <div id="password"> 
     <asp:TextBox ID="Password" runat="server" TextMode="Password" CssClass="input_box1" size="16"></asp:TextBox> 
    </div> 
</div> 
<div id="remember"> 
    <div id="reme"> 
     <div id="reme1"> 
      <asp:CheckBox ID="RememberMe" runat="server" /> 
     </div> 
     <div id="reme2">Remember me</div> 
    </div> 
    <div id="loginbutton1"><span class="login"><asp:LinkButton ID="Login" 
      runat="server" CommandName="Login" onclick="Login_Click">Login</asp:LinkButton></span></div> 
    <div id="resetbutton1"><span class="login"><asp:LinkButton ID="Reset" 
      runat="server" onclick="Reset_Click">Reset</asp:LinkButton></span></div> 
</div> 

<asp:Panel ID="AdminPanel" runat="server" Visible="false"> 
<div id="welcome_loggedin"> 
    <span class="welcome">Welcome </span><span class="guest1"><asp:LoginName ID="LoginName1" runat="server" />!</span><br /> 
    <asp:HyperLink ID="MyAccountLink" CssClass="memberLink" runat="server" NavigateUrl="/my-account.html">My Account</asp:HyperLink><br /> 
    <asp:HyperLink ID="MyLeaguesLink" CssClass="memberLink" runat="server" NavigateUrl="/my-leagues.html">My Leagues</asp:HyperLink><br /> 
    <asp:HyperLink ID="AdminLink" CssClass="memberLink" runat="server" NavigateUrl="/admin/">Admin Area</asp:HyperLink><br /> 
    <asp:HyperLink ID="IssueTrackerLink" CssClass="memberLink" runat="server" Target="_blank">Issue Tracker</asp:HyperLink><br /> 
    <asp:HyperLink ID="Logout" CssClass="memberLink" runat="server" NavigateUrl="/logout.html">Logout</asp:HyperLink> 
</div> 

<asp:Panel ID="UserPanel" runat="server" Visible="false"> 
<div id="welcome_loggedin"> 
    <span class="welcome">Welcome </span><span class="guest1"><asp:LoginName ID="LoginName2" runat="server" />!</span><br /> 
    <asp:HyperLink ID="HyperLink1" CssClass="memberLink" runat="server" NavigateUrl="/my-account.html">My Account</asp:HyperLink><br /> 
    <asp:HyperLink ID="HyperLink2" CssClass="memberLink" runat="server" NavigateUrl="/my-leagues.html">My Leagues</asp:HyperLink><br /> 
    <asp:HyperLink ID="HyperLink3" CssClass="memberLink" runat="server" NavigateUrl="/logout.html">Logout</asp:HyperLink> 
</div></asp:Panel> 
+0

http://stackoverflow.com/questions/96837/linkbutton-not-firing-on-production-server – madcolor

+0

예 CausesValidation = "false"를 두 linkbuttons에 추가하려고 시도했지만 도움이되지 않았습니다. LinkButton은 포스트 백을 발생 시키지만 OnClick 이벤트 코드가 실행되지 않는 것처럼 보입니다. – Nate32

답변

0

당신은 일시적으로 그 이벤트 핸들러에서 일부 로깅을 수행 할 수 있을까요?

웹 서버의 .txt 파일에 쓸 수 있습니다. 또는 이벤트 로그에.

click 이벤트의 첫 번째 줄에 로그에 기록하십시오. 그런 다음 try-catch 블록에서 원하는 작업 (로그인, 재설정)을 수행하십시오. try와 catch 모두 로그에 다시 씁니다. 이상한 예외가 발생하면 catch 로깅에서 세부 정보를 캡처 할 수 있습니다.

이 임시 코드를 그대로두고 싶지만 불필요하게 로깅을 수행하지 않으려면 web.config 파일의 <appSettings>에 토글을 추가하여 로깅을 설정하거나 해제 할 수 있습니다.

+0

예 DB에 로깅을 추가하고 전자 메일을 보내려고했지만 이벤트 처리기에서 예외가 발생하여 아무 것도 실행되지 않는 경우도있었습니다. 이것이 나를 공격하는 것이 아니라고 믿게합니다.하지만 제품 서버에서 단 하나의 페이지에서만 발생할 수있는 이유는 무엇입니까? – Nate32

2

"원인 확인"속성을 false로 변경하고 차이가 있는지 확인해보십시오.

+0

그래, 시도했지만 도움이되지 않습니다. (처음 게시물 아래 내 의견을 참조하십시오). – Nate32

+0

oops! 그것을 보지 못했습니다. –

+1

@ps. 그게 날 도와 줘! 감사 :) – Oshrib