2011-06-17 25 views
14

Tôi có một giải pháp với nhiều trang web và tôi đã sử dụng Cassini để phát triển. Khi IIS Express xuất hiện, tôi đã chuyển đổi một trong số các trang web để sử dụng nó và mọi thứ đã hoạt động tốt. Tôi chỉ chuyển một trang web khác để sử dụng IIS Express và ngay lập tức gặp sự cố khi gỡ lỗi: IIS Express không gắn nhãn các quy trình của nó, vì vậy bây giờ tôi có hai tiến trình đang chạy, tôi không thể phân biệt chúng trong phần "Đính kèm quy trình" hộp thoại.Làm cách nào để gắn nhãn (đặt Tiêu đề) cho quá trình IIS Express?

Có cách nào để IIS Express đặt tiêu đề quy trình không? Bất cứ ai cũng có bất kỳ lời khuyên để nói nhiều trường hợp IIS Express ngoài cho mục đích đính kèm các trình gỡ lỗi?

Cập nhật Một cách tròn về để làm điều này là để thực hiện menu ngữ cảnh "Hiển thị tất cả các ứng dụng" của biểu tượng khay IIS Express và tham khảo các PID khỏi danh sách khi gắn debugger. Tốt hơn là không có gì, nhưng sẽ tốt hơn nếu có cách nào tốt hơn.

Cập nhật 2 Tôi đã thêm một vấn đề kết nối: https://connect.microsoft.com/VisualStudio/feedback/details/729475/impossible-to-differentiate-iis-express-instances-when-attaching-debugger

+0

Sho w tất cả các ứng dụng là đủ tốt cho tôi - cảm ơn cho các tip – Jerph

+1

Kết nối sẽ chỉ đóng nó là "theo thiết kế". –

Trả lời

4

Alternative bạn có thể thêm mã này để bắt đầu gỡ rối từ bên trong trang của bạn. Faste của nó và dễ dàng, và bạn chỉ có thể sử dụng một trang địa phương ẩn để gọi nó và bắt đầu trình gỡ lỗi của bạn.

System.Diagnostics.Debugger.Launch(); 
2

Tôi chạy phiên bản IISExpress từ tệp lô. Tên của tệp cmd sau đó hiển thị dưới dạng tên quy trình trong Đính kèm quy trình.

ví dụ như: có điều này trong file MySite.cmd

"C:\Program Files (x86)\IIS Express\iisexpress.exe" /siteid:1

sẽ hiển thị trong Tiêu đề cột trong Đính kèm để trình như

MySite

+0

Có cách nào dễ dàng để lấy id trang web không? –

+0

Theo như tôi biết chỉ bằng cách đi vào và kiểm tra nó trong tập tin applicationhost.config. Bạn có thể tìm thấy nó trong% Thư mục người dùng của bạn% \ Documents \ IISExpress \ config Bạn cũng có thể chạy iisexpress.exe với một/site: [site-name] đối số thay vì sử dụng site-id – Boycs

0

Đừng quên một tài liệu tham khảo vào System.Management ...

public static Regex siteNamePattern = new Regex("/site:\"(?<sitename>[^\"]+)\"", RegexOptions.Compiled); 

... 

var iisExpressSiteNames = new ManagementObjectSearcher(
    "select CommandLine, ProcessId from Win32_Process where Name='iisexpress.exe'") 
    .Get().Cast<ManagementBaseObject>().ToDictionary(
    o => int.Parse(o["ProcessId"].ToString()), 
    o => siteNamePattern.Match(o["CommandLine"].ToString()).Groups["sitename"].Value 
); 
+0

Đây là khóa học chưa sẵn sàng tạo câu trả lời cho câu hỏi của bạn, nhưng nó có thể được sử dụng để tạo ra câu trả lời như vậy. –

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