今天早些时候我问了这个问题debugger in vb.net skips line,但我发现了一些关于我正在进行的项目的奇怪(或者对于vb.net来说可能是正常的)。 我正在编辑vb文件,添加一些方法。 调试原始文件工作正常,我可以逐步进入代码并逐行遍历每一行,没有任何问题。 现在,当我添加一些方法时,调试器的工作非常奇怪,请查看以下两个屏幕截图:
网站未启动 - >所有断点:http://gyazo.com/1077b7efbdb2b37174d5960cdff0bda5.png?1348160907
网站已启动 - >缺少第二行的断点:http://gyazo.com/3051303d6eb27af9ea13bd6e72b81a83.png?1348161507
此外,当我将方法添加到文件中时,现在调试不会逐行进行,但是例如第1行的步骤,然后当我单击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 = "admin@mysite.com") 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 = "admin@mysite.com") 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 = "admin@mysite.com") 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") = "admin@mysite.com") 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 = "admin@mysite.com") 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 = "myemail@yahoo.com"
Dim decryptEmail As String = DecryptData("myemail@yahoo.com")
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 = "admin@mysite.com") 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 = "admin@mysite.com") 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") = "admin@mysite.com") 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 :(得分:1)
如果您使用ASP.net开发服务器进行托管,我已经看到,即使Visual Studio已停止,该进程仍在执行代码时会发生这种情况。当您启动新的调试会话时,它会尝试跟踪两个会话。我认为当您点击停止按钮而不是关闭浏览器窗口并且存在长时间运行或异步进程时,可能会发生这种情况。
尝试右键单击任务栏中的ASP.net开发服务器图标,然后选择停止,然后开始调试。