2

學習MS Visual Web Developer和ASP.NET 4.0。我似乎更喜歡查看頁面源代碼並將鼠標懸停在綠色波浪風格下劃線的區域上,而不是使用MS Visual Web Developer中的調試選項。當我把鼠標懸停在他們身上時,它告訴我什麼是錯誤的,然後我才明白從那裏做什麼。在Microsoft Visual Web Developer 2010 Express中進行調試

對於一個具體的例子,我有:

<td background="images/separater.png" width="5"> 

盤旋在它之後,我用這個替代它:

<td style="background-image: url(images/separater.png)" width="5"> 

使開關,綠色波浪線消失後,所以我假設實際上我調試了那個特定的代碼片段。我相信我只是讓它與ASP.NET 4.0 Framework兼容。

我獨自留下的唯一綠色波浪線就是Facebook插件等社交插件。無論如何,我的問題是:是我在做什麼(一)正確,(二)重要,和(三)一樣好使用MS Visual Web Developer中的調試選項?因爲你沒有使用Debug命令

回答

1

大多數ASP.NET開發人員考慮這個調試,F5調試服務器端代碼(通常是C#或VB.NET代碼)。有關該過程的更多詳細信息,請參閱Walkthrough: Debugging Web Pages in Visual Web Developer

你所說的綠色波浪線實際上是關於你的HTML的警告。在這種情況下,表格的背景屬性不是official HTML specification的一部分,這是Visual Web Developer Express警告你的。因此,您沒有使您的代碼與ASP.NET 4.0 Framework兼容,但您確實使您的標記符合HTML標準。

如果你的代碼是不是與ASP.NET 4.0兼容,你通常會死亡的黃色畫面,在這一點上,你可能需要調試找到錯誤或異常

Example yellow screen of death

的原因

要回答你的問題:你在做什麼是(a)正確的,(b)對於瀏覽器兼容性是重要的,(c)不涉及Visual Web Developer Express中的調試功能。

+0

非常感謝Michiel花時間回覆。我完全理解你在說什麼。我已經處理了我網站上的所有警告,除了一對夫婦(它不喜歡我爲我的社交書籤之一提供的Facebook插件,但無論如何我都離開了它)。所有的oyur信息都很有用,並且感謝您發佈MS調試網站的鏈接。保重! – 2011-12-21 23:41:11

1

我真的更喜歡Visual Studio 2010中的「附加到進程」選項,但是如果您正在使用Visual Web Developer(例如在調試服務器上)來調試已部署的網站或Web應用程序,我喜歡使用ASP.NET開發服務器(通過點擊播放啓動)的此方法。如果未明確處理,則應用程序中引發的每個異常(除了來自asmx Web服務)都將在此方法中捕獲。只要確保在您的網站根文件夾中創建一個「例外」文件夾。調試器在點擊Visual Web Developer 2010中的播放按鈕後啓動應用程序需要很長時間,所以我更願意在IIS中設置站點,然後將堆棧跟蹤發送到文件,因爲這是您關心的問題無論如何。如果您需要有關異常變量的更多詳細信息,請在發生異常的位置捕獲異常,並在其中引入一個具有該變量值的新異常。當搜索最新的異常調用堆棧時,只需打開該文件夾並對文件進行排序即可。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.SessionState; 

namespace WebApplication1 
{ 
    public class Global : System.Web.HttpApplication 
    { 

     protected void Application_Start(object sender, EventArgs e) 
     { 

     } 

     protected void Session_Start(object sender, EventArgs e) 
     { 

     } 

     protected void Application_BeginRequest(object sender, EventArgs e) 
     { 

     } 

     protected void Application_AuthenticateRequest(object sender, EventArgs e) 
     { 

     } 

     protected void Application_Error(object sender, EventArgs e) 
     { 
      Exception ex = Server.GetLastError(); 
      try 
      {     
       WebApplication1.Global.WriteDataToFile(null, ex.StackTrace); 
      } 
      catch 
      { 
       throw ex; 
      } 
     } 

     public static void WriteDataToFile(string filePath, string contentToWrite) 
     { 
      if (filePath == null) 
      { 
       filePath = string.Format(@"C:\web_root\exceptions\debug.{0:yyyy-MM-dd_hh.mm.ss.tt}.txt", DateTime.Now); 
      } 

      System.IO.StreamWriter sw = new System.IO.StreamWriter(filePath); 
      sw.WriteLine(contentToWrite); 
      sw.Close(); 
     } 

     protected void Session_End(object sender, EventArgs e) 
     { 

     } 

     protected void Application_End(object sender, EventArgs e) 
     { 

     } 
    } 
} 
相關問題