VS啟用IIS調試的方法及可能碰到的問題。


經常有這種情況, 開發機本地正常, 但是一旦發布到服務上后, 就出現各種問題。

這是由於開發機和服務器環境不一樣造成的, 所以開發時要盡可能的模擬真實性。  這時候, VS的這個功能就幫大忙了。 

 

如何啟用IIS調試

     第一種: 附加進程法

      1.  在IIS中建立站點直接指到程序所在文件夾(或者路徑指到程序發布的文件夾);

    2.  對要測試的頁面設置斷點,然后選擇”調試”->”附加到進程”,在進程中選擇w3wp.exe進程(需要先打開需測試的頁面);如果找不到w3wp.exe進程,在進程列表的下面,有個show processes in all sessions,把它勾上就能看到了。  

     第二種:設置服務器參數法

  打開Web啟動項目屬性,在左側打開Web頁, 在這里可以看到開始項目的行為設置以及“Servers”(服務器)這個選項。在“Servers”中,有 一個"User Custom Web Server"(用戶自定義服務器)的選項,選中它,並且在下面的URL中輸入IIS中當前項目的URL即可(如http://www.8kmm.com:8080/)。(在Servers中,我們同樣可以修改localhost的端口號等等,這是一個很有用的選項。)

  在Servers中,同樣有一個"Use Local IIS Web server"的選項,使用這個選項需要IIS6.0,如果您只安裝了IIS7.0而沒有安裝IIS6.0兼容服務的話,使用User Custom Web Server是最佳的選擇。 

     以上設置完成之后,保存並啟動調試就可以在IIS中調試了。

 

可能碰到的問題及經驗。

     如果調試出錯的話,一項一項的比對:  

    1. 網站配置項中,網站標簽下的連接是否啟用了保持HTTP連接項,IIS6的操作路徑:
      IIS6管理器中右鍵當前調試網站--屬性--網站--連接--保持HTTP連接
    2.  檢查是否啟用Windows身份驗證。IIS6路徑:
      IIS6管理器中右鍵當前調試網站--屬性--目錄安全--身份驗證和訪問控制--編輯--用戶訪問需經過身份驗證--集成Windows身份驗證
    3. 如果是ASP這樣的網站也許你要啟用在服務端進行ASP調試的選項,路徑為: 
      IIS6管理器中右鍵當前調試網站--屬性--主目錄--應用程序設置--配置...--調試--調試標志--啟用ASP服務器端腳本調試 && 啟用ASP客戶端腳本調試
    4. 啟用IIS中ASP.NET的調試項,這項也可以從web.config中設置,路徑為:
      IIS6管理器中右鍵當前調試網站--屬性--ASP.NET--Edit Configuration(編輯配置)--應用程序--公共編譯、頁和運行時設置--勾選:啟用調試--確定
    5. 如果你是IIS7,可以嘗試啟用IIS7中的Class .NET AppPool,經典的.NET應用程序池,路徑:
      當前調試站點--高級設置--應用程序池--Class .NET AppPool(經典模式)
    6. 系統注冊表檢查

6.1   禁用環回檢查,將DisableLoopbackCheck 注冊表項值置為1,Mitchell自己在Windows2003的問題就是這個方法解決的,注冊表路徑:

開始--運行--輸入:regedit--確定--路由到下面路徑:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
--右鍵:Lsa--新建--DWORD值--鍵入:DisableLoopbackCheck--右鍵:DisableLoopbackCheck--修改--數值數據框輸入:1--確定。

##注意:
操作后如果無法直接生效,可能需要重啟系統。

6.2   指定主機名,將DisableStrictNameChecking注冊表項值置為1,具體操作方法:

開始--運行--鍵入:regedit--確定--路由到下面注冊表項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
--右鍵:MSV1_0--新建--多字符串值--輸入:BackConnectionHostNames--確定--右鍵:BackConnectionHostNames--修改--數值數據--輸入本地網站的主機名(可多個)--確定--重啟IISAdmin服務. 


      7. 檢查Web應用程序中web.config中的debug是否值為true:


經驗之談
1. 無法進入斷點: web項目的屬性頁面調試器==》啟用本機代碼, 如需要其它的, 自己看。  

2. 第一種附加進程法, 當使用到多線程或者異步請求的時候,很可能造成跟蹤丟失的情況(不會命中斷點), 這時該用第二種。  

3. “啟用編輯並繼續”打上勾,就方便多了。  

4. 有些web項目, 帶了路徑, 比如:“E:\website\”,  這時調試時路徑可能變成:“http://localhost:2435/website/”.  圖片等資源文件地址可能就有問題。 這時候, 選中web項目==》屬性窗口==》將Visual path屬性改成"/"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM