2008-10-16 37 views

Trả lời

49

thuộc tính dự án mở, chuyển đến tab web và chọn tùy chọn cho IIS.

Điều đó thực sự bắt đầu một phiên bản ứng dụng trong IIS và đính kèm trình gỡ rối. Nếu bạn chỉ muốn đính kèm vào một cá thể IIS hiện có, hãy chọn đính kèm vào quá trình từ trình đơn gỡ lỗi.

+1

Điều này chỉ hoạt động đối với máy chủ IIS cục bộ, phải không? Không thể triển khai/chạy/đính kèm với quy trình công nhân trên máy chủ IIS từ xa theo cách đó? (Tôi hỏi điều này, bởi vì tôi muốn có thể làm điều đó, nhưng đã không tìm thấy một phương pháp hợp lý để làm như vậy). –

+1

Có, chỉ ở địa phương. Tôi nghĩ rằng để làm những gì bạn đang tìm kiếm sẽ yêu cầu bạn xuất bản trang web, sau đó đính kèm vào quá trình trên máy từ xa. yêu cầu cài đặt trình gỡ lỗi từ xa và có thể là một số vấn đề về bảo mật. Không vui ... – StingyJack

+2

Đính kèm quá trình nằm trong menu "Công cụ" – Shiham

6

chuyển đến các thuộc tính của ứng dụng web. Chọn phần "Tùy chọn Bắt đầu" và thay đổi từ "Sử dụng máy chủ web mặc định" thành "sử dụng máy chủ tùy chỉnh". Nhập "http://localhost" vào url cơ sở.

(giả định VS 2008)

90

Debug-> Attach To Process ...

Chọn aspnet_wp.exe quá trình từ danh sách.

Nếu bạn đang chạy IIS> phiên bản 5 quá trình này sẽ được w3wp.exe, và sẽ có một cho mỗi ứng dụng hồ bơi (vì vậy nếu bạn không biết mà ứng dụng hồ bơi bạn đang đánh, bạn sẽ cần phải đính kèm với tất cả chúng).

+2

cách ưa thích của tôi vì điều này tránh mở một cửa sổ mới - và cũng giữ trạng thái phiên bất kỳ mà tôi đã có trong một trình duyệt đang mở. –

+34

w3wp.exe trong IIS 7. –

+3

w3wp.exe cũng cho IIS 6 (trong Server 2003) –

11

Gỡ lỗi -> Đính kèm quy trình từ menu VS.

Để biết mà W3Wp.Exe quá trình để đính kèm bạn có thể sử dụng lệnh sau trên máy chủ

c:\%systemroot%\system32\inetsrv\appcmd list wp 

2008 Trong khi trên cửa sổ 2003 nó là

c:\%systemroot%\system32\cscript iisapp.vbs 

Để biết thêm thông thấy IIS Application pool PID.

Tuy nhiên nếu bạn có quyền truy cập trình quản lý tác vụ (taskmgr.exe), bạn có thể xem trực tiếp tên của quy trình cùng với ID tiến trình và trong hầu hết các trường hợp, cột "tên người dùng" của quy trình sẽ giống như tên nhóm ứng dụng, (tất nhiên bạn phải đặt các cột này hiển thị trong trình quản lý tác vụ để xem thông tin). Tuy nhiên, lưu ý rằng tất cả các phương pháp sẽ chỉ hiển thị các quy trình hiện đang chạy, có nghĩa là nếu quá trình cụ thể của bạn đã tắt do thời gian không sử dụng, trước tiên bạn phải sử dụng trang web để đưa quá trình này lên. trong danh sách.

Ngoài ra nếu ứng dụng là "Web Garden" (có nhiều hơn một w3wp.exe) thì ngay cả sau khi đính kèm đúng quy trình vẫn không đảm bảo rằng điểm ngắt sẽ bị truy cập, vì lưu lượng truy cập đến trang web có thể được chuyển hướng đến một quy trình khác. Cũng lưu ý rằng nếu bạn đính kèm vào một ứng dụng chạy trong chế độ phát hành, bây giờ nó sẽ chạy trong chế độ gỡ lỗi, có nghĩa là sẽ không có giới hạn thời gian chờ (có thể là một vấn đề nếu bạn đang thực sự cố khắc phục lỗi hết thời gian chờ).


Nếu bạn muốn đính kèm vào một quá trình từ xa ở đây là thực hành tốt nhất:

  1. Hãy chắc chắn rằng các bức tường lửa không chặn bằng cách mở các cổng tương ứng hoặc hoàn toàn vô hiệu hóa nó (chỉ cần nhớ để biến nó trên một lần nữa khi thực hiện).
  2. Bạn phải có tài khoản miền cửa sổ có quyền quản trị trên máy từ xa hoặc có tài khoản - với tên người dùng và mật khẩu giống như máy cục bộ đang chạy VS - trên máy từ xa.
  3. Trên máy có cài đặt VS điều hướng đến (Đường dẫn cài đặt Visual Studio) \ Microsoft Visual Studio (số phiên bản hiện tại) \ Common7 \ IDE \ Remote Debugger (Phiên bản máy từ xa) và sao chép và dán thư mục này vào điều khiển từ xa máy hoặc chia sẻ thư mục này để có thể truy cập từ máy từ xa.
  4. Trên máy từ xa đăng nhập với tư cách người dùng giống với máy cục bộ (xem bước 2) từ đó điều hướng đến thư mục được sao chép hoặc chia sẻ của bước 3 và nhấp chuột phải vào "msvsmon.exe" và từ trình đơn ngữ cảnh chọn "Run As Administrator".
  5. Màn hình từ xa sẽ khởi động và tuyên bố rằng nó bắt đầu một máy chủ thường bằng tên (người dùng) @ (máy từ xa) hoặc bất kỳ tên nào khác.
  6. Trong VS chọn Gỡ lỗi -> Đính kèm vào Quy trình từ trình đơn, để giao thông trên "Mặc định" và "Tên công cụ" nhập tên từ bước 5.
    Nếu mọi thứ diễn ra chính xác, điều này sẽ hiển thị danh sách các quy trình trên máy từ xa.

Tất nhiên có nhiều hơn trong chủ đề này và để gỡ lỗi mã gốc có thể đơn giản hơn, nhưng các bước tôi đã liệt kê ở đây sẽ hoạt động trong mọi trường hợp.

Để biết thêm thông tin, bạn có thể xem http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx hoặc trên MSDN cũng như nhiều bài đăng trên trang web này.

Hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan