2010-02-04 20 views
5

Điều này đang chạy cho tôi các loại hạt. Tôi có dịch vụ web này thực hiện w/C# bằng cách sử dụng VS 2008. Tôi xuất bản nó trên IIS. Tôi đã sửa đổi bản phát hành để các tệp pdb được sao chép cùng với các dll vào thư mục đích trên inetpub.Thiếu số dòng trong ngăn xếp theo dõi sự kiện khi các tệp PDB được bao gồm

Tệp web.config có debug = true.

Sau đó, tôi gọi một dịch vụ web có ngoại lệ. Theo dõi ngăn xếp không chứa số dòng. Tôi không biết tôi đang thiếu gì ở đây, có ý tưởng nào không?

Thông tin bổ sung: Nếu tôi chạy ứng dụng web sử dụng máy chủ web tích hợp VS, nó hoạt động và tôi nhận được số dòng trong theo dõi ngăn xếp. Nhưng nếu tôi sao chép các tập tin tương tự (pdb và dll) mà máy chủ web tích hợp VS đang sử dụng cho IIS, vẫn còn các số dòng bị thiếu trong ngăn xếp ngăn xếp.

Dường như có liên quan đến IIS bỏ qua tệp pdb!

Cập nhật Khi tôi xuất bản lên IIS, tất cả các tệp pdb được xuất bản dưới thư mục bin và mọi thứ đều ổn. Nhưng khi tôi đi đến "C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files" theo thư mục cụ thể liên quan đến dự án của tôi, tôi có thể thấy rằng các tập tin lắp ráp (.dll) là tất cả ở đó , nhưng không có tệp pdb. Nhưng điều này không xảy ra nếu tôi chạy dự án bằng cách sử dụng máy chủ web tích hợp VS. Vì vậy, nếu tôi sao chép các tệp pdb theo cách thủ công vào thư mục temp, tôi có thể thấy số dòng.

Bất kỳ ý tưởng nào tại sao tệp pdb không được sao chép vào thư mục tạm thời?

BTW, khi tôi đính kèm với quy trình công nhân, tôi có thể thấy rằng biểu tượng đó đã tải Biểu tượng!

+0

bạn có đang sử dụng WCF để gọi dịch vụ web đó không? –

+0

Không có dịch vụ web asmx – kaptan

+0

bản sao có thể có của [IIS không cho số dòng trong ngăn xếp theo dõi mặc dù pdb hiện tại] (http://stackoverflow.com/questions/2673623/iis-not-giving-line-numbers-in- stack-trace-even-though-pdb-present) –

Trả lời

0

Có lẽ máy chủ bạn đang xuất bản để có các thiết lập <deployment retail="true" /> cấu hình trong file hệ thống machine.config trong:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG

Để biết thêm thông xem:

ASP.NET configuration - deployment Element (ASP.NET Settings Schema)

Chỉ là một ý nghĩ.

+0

tôi đã kiểm tra tệp đó và không có trong tệp đó. – kaptan

+0

Trong một nhận xét trong bài đăng được liên kết ở trên http://stackoverflow.com/questions/2673623/iis-not-giving-line-numbers-in-stack-trace-even-though-pdb-present/2673642#2673642, người dùng @Graeme nói rằng nếu bạn làm điều này, nó tắt ngăn xếp truy tìm hoàn toàn, không chỉ số dòng. –

0

Gắn với quy trình công nhân bằng cách sử dụng VS hoặc windbg và xem liệu nó có thể tìm thấy pdb của bạn và liệu nó có phù hợp với lắp ráp của bạn không?

Một lý do phổ biến khác là bạn đang thực sự sử dụng dll phát hành [được tối ưu hóa]. Tôi nghi ngờ nó là bất cứ điều gì cụ thể để làm với IIS.

+0

.pdb tệp có thể được sử dụng với "Phát hành" hoặc tối ưu hóa dll của mà không có một vấn đề. Tôi đã thực hiện nó nhiều lần. –

0

Hãy đảm bảo đặt "debug = true" trong web.config, không có nó, không có số dòng nào được hiển thị trong trường hợp ngoại lệ.

+0

nó đã có – kaptan

0

Không chắc chắn nếu điều này sẽ giúp đỡ, nhưng trong tính C# dự án VS2008 của tôi, dưới sự build tab, có một nút Advanced nơi tôi đã phải thiết lập thông tin gỡ lỗi để "đầy đủ" hoặc "pdb-only"

1

tôi đã có vấn đề này và cố gắng mọi thứ dưới ánh mặt trời để thử và sửa chữa nó.Không có gì hiệu quả cho đến khi tôi tìm thấy câu trả lời được chấp nhận trong câu hỏi tương tự này: IIS not giving line numbers in stack trace even though pdb present.

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 ...

Tôi cần mạo danh phải được bật cho hầu hết các trang web của tôi (và những người các trang web có số dòng, đi con số) vì vậy tôi vô hiệu hóa nó cho trang web cụ thể này và có số dòng của tôi !!

+1

Đây là giải pháp duy nhất có hiệu quả đối với tôi. Tôi hy vọng rằng "mạo danh = true" không phải là điều mà các trang web của tôi cần. – Arvin

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