2012-09-20 75 views
0

今天早些时候,我问了这个问题debugger in vb.net skips line,但我刚刚发现了一些关于我正在开发的项目的奇怪的东西(或者对vb.net来说可能是正常的)。 我正在编辑vb文件,添加一些方法。 调试原始文件工作正常,我可以进入代码并通过每行,逐行,没有任何问题。 现在,当我加了一些方法调试工作确实很奇怪,检查这两个截图:vb.net调试器跳过调试线

  1. 网站未启动 - >在地方所有断点:http://gyazo.com/1077b7efbdb2b37174d5960cdff0bda5.png?1348160907

  2. 网站开始 - >断点在第2行缺少:http://gyazo.com/3051303d6eb27af9ea13bd6e72b81a83.png?1348161507

而且,当我加入了方法的文件,现在调试不走一行行,但在一号线的示例步骤,然后当我点击f10,它进一步下面20行,它不会到代码中的下一行。 我第一次编辑vb.net代码,我一直在使用c#,并且我不知道编辑文件后是否需要修改某些内容,以便调试器能正常工作。

原始代码:

Public Class Login 
    Inherits System.Web.UI.Page 

    Private m_objFranchiseInfo As New clsFranchiseInfo 

    Private Sub Login_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init 
     Dim sEmail As String = Request.QueryString("email") 
     Dim sPswd As String = Request.QueryString("password") 



     If (Not String.IsNullOrWhiteSpace(sEmail) And Not String.IsNullOrWhiteSpace(sPswd)) Then 

      If (sEmail.ToLower = "[email protected]") Then 
       FormsAuthentication.SetAuthCookie(sEmail, False) 
       Session("UserName") = sEmail 
       Session("Password") = sPswd 
      Else 

       Dim objService As New clsPropertyware 
       With objService 

        .UserName = sEmail 
        .Password = sPswd 
        .Initialize() 

        If .TestConnection = True Then 
         FormsAuthentication.SetAuthCookie(sEmail, False) 
         Session("UserName") = sEmail.ToLower 
         Session("Password") = sPswd 
         Session("OrgID") = .GetOrgID 


        Else 
         FormsAuthentication.SetAuthCookie("", True) 
         Session("UserName") = String.Empty 
         Session("Password") = String.Empty 
         Session("OrgID") = String.Empty 
        End If 

       End With 


      End If 
     Else 
      FormsAuthentication.SignOut() 
      Session("UserName") = String.Empty 
      Session("Password") = String.Empty 
      Session("OrgID") = String.Empty 
     End If 
    End Sub 



    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

     Dim sEmail As String = Request.QueryString("email") 
     Dim sPswd As String = Request.QueryString("password") 

     If (Not String.IsNullOrWhiteSpace(sEmail) And Not String.IsNullOrWhiteSpace(sPswd)) Then 

      If (sEmail.ToLower = "[email protected]") Then 
       FormsAuthentication.SetAuthCookie(sEmail, False) 
       Session("UserName") = sEmail 
       Session("Password") = sPswd 
      Else 

       Dim objService As New clsPropertyware 
       With objService 

        .UserName = sEmail 
        .Password = sPswd 
        .Initialize() 

        If .TestConnection = True Then 
         FormsAuthentication.SetAuthCookie(sEmail, False) 
         Session("UserName") = sEmail.ToLower 
         Session("Password") = sPswd 
         Session("OrgID") = .GetOrgID 
         Response.Redirect("~/default.aspx") 
        Else 
         FormsAuthentication.SetAuthCookie("", True) 
         Session("UserName") = String.Empty 
         Session("Password") = String.Empty 
         Session("OrgID") = String.Empty 
        End If 

       End With 


      End If 
     Else 
      FormsAuthentication.SignOut() 
      Session("UserName") = String.Empty 
      Session("Password") = String.Empty 
      Session("OrgID") = String.Empty 
     End If 
    End Sub 



    Private Sub LoginUser_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles LoginUser.Authenticate 

     Dim szUserName As String = CType(LoginUser.FindControl("UserName"), TextBox).Text().Trim() 
     Dim szPassword As String = CType(LoginUser.FindControl("Password"), TextBox).Text().Trim() 

     If (szUserName.ToLower = "[email protected]") Then 
      e.Authenticated = True 
      Session("UserName") = szUserName 
      Session("Password") = szPassword 
     Else 

      Dim objService As New clsPropertyware 
      With objService 

       .UserName = szUserName 
       .Password = szPassword 
       .Initialize() 

       If .TestConnection = True Then 
        e.Authenticated = True 
        Session("UserName") = szUserName.ToLower 
        Session("Password") = szPassword 
        Session("OrgID") = .GetOrgID 
       Else 
        e.Authenticated = False 
        Session("UserName") = String.Empty 
        Session("Password") = String.Empty 
        Session("OrgID") = String.Empty 
       End If 

      End With 
     End If 

    End Sub 


    Private Sub LoginUser_LoggedIn(ByVal sender As Object, ByVal e As System.EventArgs) Handles LoginUser.LoggedIn 

     If (Session("UserName") = "[email protected]") Then 
      Response.Redirect("~/UploadValues.aspx") 
     Else 

      m_objFranchiseInfo.Clear() 
      If (m_objFranchiseInfo.Load(Session("UserName")) = True) Then 
       Session("FranchiseAgent") = m_objFranchiseInfo.szAgent 
       Session("FranchiseAgent2") = m_objFranchiseInfo.szAgent2 
       Session("FranchiseAddress") = m_objFranchiseInfo.szAddress 
       Session("FranchiseCity") = m_objFranchiseInfo.szCity 
       Session("FranchiseState") = m_objFranchiseInfo.szState 
       Session("FranchiseZip") = m_objFranchiseInfo.szZip 
       Session("FranchisePhone") = m_objFranchiseInfo.szPhone 
       Session("FranchiseFax") = m_objFranchiseInfo.szFax 
       Session("FranchiseEmail") = m_objFranchiseInfo.szEmail 
      Else 
       Response.Redirect("~\FranchiseInfo.aspx") 
      End If 
     End If 

    End Sub 
End Class 

修改后的代码:

Imports System.Security.Cryptography 

Public Class Login 
    Inherits System.Web.UI.Page 

    Private m_objFranchiseInfo As New clsFranchiseInfo 

    Private Sub Login_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init 
     Dim sEmail As String = Request.QueryString("email") 
     Dim sPswd As String = Request.QueryString("password") 



     If (Not String.IsNullOrWhiteSpace(sEmail) And Not String.IsNullOrWhiteSpace(sPswd)) Then 

      If (sEmail.ToLower = "[email protected]") Then 
       FormsAuthentication.SetAuthCookie(sEmail, False) 
       Session("UserName") = sEmail 
       Session("Password") = sPswd 
      Else 

       Dim objService As New clsPropertyware 
       With objService 

        .UserName = sEmail 
        .Password = sPswd 
        .Initialize() 

        If .TestConnection = True Then 
         FormsAuthentication.SetAuthCookie(sEmail, False) 
         Session("UserName") = sEmail.ToLower 
         Session("Password") = sPswd 
         Session("OrgID") = .GetOrgID 


        Else 
         FormsAuthentication.SetAuthCookie("", True) 
         Session("UserName") = String.Empty 
         Session("Password") = String.Empty 
         Session("OrgID") = String.Empty 
        End If 

       End With 


      End If 
     Else 
      FormsAuthentication.SignOut() 
      Session("UserName") = String.Empty 
      Session("Password") = String.Empty 
      Session("OrgID") = String.Empty 
     End If 
    End Sub 



    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

     Dim encryptedEmail As String = "[email protected]" 
     Dim decryptEmail As String = DecryptData("[email protected]") 
     Dim encrpytedPassword As String = "password" 




     Dim sEmail As String = Request.QueryString("email") 
     Dim sPswd As String = Request.QueryString("password") 

     If (Not String.IsNullOrWhiteSpace(sEmail) And Not String.IsNullOrWhiteSpace(sPswd)) Then 

      If (sEmail.ToLower = "[email protected]") Then 
       FormsAuthentication.SetAuthCookie(sEmail, False) 
       Session("UserName") = sEmail 
       Session("Password") = sPswd 
      Else 

       Dim objService As New clsPropertyware 
       With objService 

        .UserName = sEmail 
        .Password = sPswd 
        .Initialize() 

        If .TestConnection = True Then 
         FormsAuthentication.SetAuthCookie(sEmail, False) 
         Session("UserName") = sEmail.ToLower 
         Session("Password") = sPswd 
         Session("OrgID") = .GetOrgID 
         Response.Redirect("~/default.aspx") 
        Else 
         FormsAuthentication.SetAuthCookie("", True) 
         Session("UserName") = String.Empty 
         Session("Password") = String.Empty 
         Session("OrgID") = String.Empty 
        End If 

       End With 


      End If 
     Else 
      FormsAuthentication.SignOut() 
      Session("UserName") = String.Empty 
      Session("Password") = String.Empty 
      Session("OrgID") = String.Empty 
     End If 
    End Sub 



    Private Sub LoginUser_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles LoginUser.Authenticate 

     Dim szUserName As String = CType(LoginUser.FindControl("UserName"), TextBox).Text().Trim() 
     Dim szPassword As String = CType(LoginUser.FindControl("Password"), TextBox).Text().Trim() 

     If (szUserName.ToLower = "[email protected]") Then 
      e.Authenticated = True 
      Session("UserName") = szUserName 
      Session("Password") = szPassword 
     Else 

      Dim objService As New clsPropertyware 
      With objService 

       .UserName = szUserName 
       .Password = szPassword 
       .Initialize() 

       If .TestConnection = True Then 
        e.Authenticated = True 
        Session("UserName") = szUserName.ToLower 
        Session("Password") = szPassword 
        Session("OrgID") = .GetOrgID 
       Else 
        e.Authenticated = False 
        Session("UserName") = String.Empty 
        Session("Password") = String.Empty 
        Session("OrgID") = String.Empty 
       End If 

      End With 
     End If 

    End Sub 


    Private Sub LoginUser_LoggedIn(ByVal sender As Object, ByVal e As System.EventArgs) Handles LoginUser.LoggedIn 

     If (Session("UserName") = "[email protected]") Then 
      Response.Redirect("~/UploadValues.aspx") 
     Else 

      m_objFranchiseInfo.Clear() 
      If (m_objFranchiseInfo.Load(Session("UserName")) = True) Then 
       Session("FranchiseAgent") = m_objFranchiseInfo.szAgent 
       Session("FranchiseAgent2") = m_objFranchiseInfo.szAgent2 
       Session("FranchiseAddress") = m_objFranchiseInfo.szAddress 
       Session("FranchiseCity") = m_objFranchiseInfo.szCity 
       Session("FranchiseState") = m_objFranchiseInfo.szState 
       Session("FranchiseZip") = m_objFranchiseInfo.szZip 
       Session("FranchisePhone") = m_objFranchiseInfo.szPhone 
       Session("FranchiseFax") = m_objFranchiseInfo.szFax 
       Session("FranchiseEmail") = m_objFranchiseInfo.szEmail 
      Else 
       Response.Redirect("~\FranchiseInfo.aspx") 
      End If 
     End If 

    End Sub 

    Public Function DecryptData(
    ByVal encryptedtext As String) As String 

     ' Convert the encrypted text string to a byte array. 
     Dim encryptedBytes() As Byte = Convert.FromBase64String(encryptedtext) 

     ' Create the stream. 
     Dim ms As New System.IO.MemoryStream 
     ' Create the decoder to write to the stream. 
     Dim decStream As New CryptoStream(ms, 
      TripleDES.CreateDecryptor(), 
      System.Security.Cryptography.CryptoStreamMode.Write) 

     ' Use the crypto stream to write the byte array to the stream. 
     decStream.Write(encryptedBytes, 0, encryptedBytes.Length) 
     decStream.FlushFinalBlock() 

     ' Convert the plaintext stream to a string. 
     Return System.Text.Encoding.Unicode.GetString(ms.ToArray) 
    End Function 

    Private Function TruncateHash(
    ByVal key As String, 
    ByVal length As Integer) As Byte() 

     Dim sha1 As New SHA1CryptoServiceProvider 

     ' Hash the key. 
     Dim keyBytes() As Byte = 
      System.Text.Encoding.Unicode.GetBytes(key) 
     Dim hash() As Byte = sha1.ComputeHash(keyBytes) 

     ' Truncate or pad the hash. 
     ReDim Preserve hash(length - 1) 
     Return hash 
    End Function 

    Sub New(ByVal key As String) 
     ' Initialize the crypto provider. 
     TripleDes.Key = TruncateHash(key, TripleDes.KeySize \ 8) 
     TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8) 
    End Sub 

    Public Function EncryptData(
    ByVal plaintext As String) As String 

     ' Convert the plaintext string to a byte array. 
     Dim plaintextBytes() As Byte = 
      System.Text.Encoding.Unicode.GetBytes(plaintext) 

     ' Create the stream. 
     Dim ms As New System.IO.MemoryStream 
     ' Create the encoder to write to the stream. 
     Dim encStream As New CryptoStream(ms, 
      TripleDes.CreateEncryptor(), 
      System.Security.Cryptography.CryptoStreamMode.Write) 

     ' Use the crypto stream to write the byte array to the stream. 
     encStream.Write(plaintextBytes, 0, plaintextBytes.Length) 
     encStream.FlushFinalBlock() 

     ' Convert the encrypted stream to a printable string. 
     Return Convert.ToBase64String(ms.ToArray) 
    End Function 

End Class 

每个帮助是值得欢迎的。 在此先感谢,Laziale

+0

你的编译配置是否设置为'Debug'或'Release'? –

+0

构建配置设置为调试 – Laziale

+0

重复http://stackoverflow.com/questions/3144880/visual-studio-2010-debugger-skipping – Michael

回答

1

如果您使用ASP.net开发服务器托管,我发现即使Visual Studio已停止,该进程仍在执行代码时发生了这种情况。当您开始一个新的调试会话时,它会尝试关注两个会话。我认为这可能发生在您点击停止按钮而不是关闭浏览器窗口并且存在长时间运行或异步进程时。

尝试右键单击任务栏中的ASP.net开发服务器图标并选择停止,然后开始调试。