2010-04-20 23 views
6

Cấu hình web có debug = true và dự án là bản dựng lỗi và tệp pdb có trong thư mục bin, nhưng tôi không nhận được số dòng trong stacktrace khi một ngoại lệ được ném.IIS không cho số dòng trong ngăn xếp theo dõi mặc dù pdb hiện tại

Hoạt động tốt với IIS/Cassini cục bộ nhưng không hoạt động trên máy chủ IIS thử nghiệm của chúng tôi. Có một số thiết lập rõ ràng mà tôi có thể bị thiếu?

Trả lời

8

Hóa ra sử dụng mạo danh với web.config:

<identity impersonate="true" /> 

gây sự mất mát của những con số dòng trong stacktrace. Tôi lấy mục nhập và số dòng của tôi quay trở lại, đặt nó trở lại và sau một vài giờ (làm mới vé Kerberos?) Các số dòng biến mất một lần nữa.

Không chắc chắn tại sao mạo danh tác động đến vết đống nhưng nó - sẽ rất vui khi có một người nào đó xác nhận/giải thích này ...

+0

Một người khác đã nhận thấy nó ở bài đăng cuối cùng thứ 2 của chủ đề này, nhưng không có lời giải thích nào được đưa ra: http://channel9.msdn.com/forums/TechOff/257195-Getting-line-number-in-Exception-for-ASPNET/ – Graeme

+0

Cảm ơn bạn Graeme, Cảm ơn bạn, Cảm ơn bạn, Cảm ơn bạn. Tôi đã dành hơn 8 giờ để cố gắng khắc phục cùng một vấn đề và sau khi thử mọi thứ tôi có thể nghĩ đến và mọi thứ tôi không thể nghĩ ra, đây là giải pháp. Tôi cần mạo danh cho một số trang web của mình nhưng các trang web đó có số dòng. Đối với một lý do không rõ, trang web cụ thể này không có số dòng và tắt mạo danh nó trong web.config địa phương giải quyết được vấn đề. CẢM ƠN BẠN!!! –

+0

Chỉ có cùng một vấn đề ở đây. Tôi sẽ đoán những gì đang xảy ra là khi DLL được tải các thread đang chạy như là bản sắc ASP.Net tiêu chuẩn nhưng khi ngoại lệ xảy ra và nó muốn tạo ra các dấu vết stack, thread đang chạy như người sử dụng gọi người không có truy cập để đọc tệp PDB. Ứng dụng của chúng tôi yêu cầu impersonate = true để làm việc nhưng chúng tôi đã giải quyết nó bằng cách cho phép mọi người truy cập toàn quyền kiểm soát trên tệp PDB. – Andy

1

Kiểm tra file Machine.config

Trong ASP.NET 2.0 có một công tắc có thể được bật trong machine.config đó tắt tất cả debug = true, vì vậy trong các ứng dụng 2.0, bạn có thể làm điều này trực tiếp mà không lo lắng về việc tìm ra ứng dụng nào làm và không có nó.

<system.web> 

     <deployment retail=”true”/> 

</system.web> 

Nguồn từ http://blogs.msdn.com/tess/archive/2006/04/13/575364.aspx

+0

Tôi đã thử trên máy cục bộ và thực sự tắt hoàn toàn dấu vết - chỉ văn bản ngoại lệ mới là trả lại. Với mặc định tôi nhận được dấu vết, chỉ cần không có tên tập tin và số dòng hiện tại. – Graeme

1

Theo question 4130956: Nếu impersonate = "true", để có được số dòng trong theo dõi ngăn xếp, bạn cần gán quyền người dùng 'Gỡ lỗi Chương trình' cho tài khoản bạn đang sử dụng để đăng nhập.

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