2012-06-22 24 views
5

Một trong những người dùng của chúng tôi đang gặp lỗi trong ứng dụng web của chúng tôi. Chúng tôi không thể sao chép vấn đề này và tôi nghi ngờ đó là mạng liên quan. Tôi đã có người dùng thử ứng dụng bằng cách sử dụng sổ ghi chép của họ tại văn phòng của họ và nhà của họ, và xác nhận vấn đề chỉ xảy ra tại văn phòng của họ.Máy chủ không thể đặt loại nội dung sau khi tiêu đề HTTP đã được gửi - theo dõi này xuống

Tôi đã đăng nhập vào máy chủ và xem trình xem sự kiện ngay sau khi họ thử tại văn phòng của họ và cảnh báo sau nằm trong nhật ký.

Tôi đang thua lỗ về cách thậm chí bắt đầu theo dõi việc này. Bất kỳ đề xuất?

Event Viewer Log dưới đây:

đang tổ chức sự kiện: 3005 thông điệp sự kiện: Một ngoại lệ unhandled đã xảy ra. Thời gian sự kiện: 6/20/2012 6:32:45 PM Thời gian sự kiện (UTC): 6/20/2012 10:32:45 PM ID sự kiện: ebf8f628a9b3457cbea117c8c2da2186 Trình tự sự kiện: 2970 Sự kiện xảy ra: 26 Mã chi tiết sự kiện: 0 thông tin ứng dụng:

Application domain: /LM/W3SVC/50/ROOT-1-129847041933281152 
Trust level: Full 
Application Virtual Path:/
Application Path: c:\websites\foobar.acme.com\ 
Machine name: MyServer Process information: 
Process ID: 15152 
Process name: w3wp.exe 
Account name: NT AUTHORITY\NETWORK SERVICE Exception information: 
Exception type: HttpException 
Exception message: Server cannot set content type after HTTP headers have been sent. Request information: 
Request URL: http://foobar.acme.com/Project/Evaluate/ResultsXML.aspx?step=89&uid=4397&rnd=hhf8oe 

Request path: /Project/Evaluate/ResultsXML.aspx 
User host address: 192.168.102.1 
User: 
Is authenticated: False 
Authentication Type: 
Thread account name: NT AUTHORITY\NETWORK SERVICE Thread information: 
Thread ID: 12 
Thread account name: NT AUTHORITY\NETWORK SERVICE 
Is impersonating: False 
Stack trace: at System.Web.HttpResponse.set_ContentType(String value) at System.Web.UI.Page.SetIntrinsics(HttpContext context, 
Boolean allowAsync) at 
System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) 
at System.Web.UI.Page.ProcessRequest(HttpContext context) at 
ASP.error_aspx.ProcessRequest(HttpContext context) at 
System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, 
TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, 
VirtualPath path, VirtualPath filePath, String physPath, Exception 
error, String queryStringOverride) 
Custom event details: 
+0

trùng lặp có thể xảy ra [Server không thể sửa status sau tiêu đề HTTP đã được gửi IIS7.5] (http: // stackoverflow .com/questions/2383169/server-cannot-set-status-after-http-headers-have-been-sent-iis7-5) –

+0

bản sao có thể có của [Máy ​​chủ không thể đặt loại nội dung sau khi tiêu đề HTTP đã được gửi] (http : //stackoverflow.com/questions/901083/server-cannot-set-content-type-after-http-headers-have-been-sent) –

+0

bản sao có thể có của [Máy ​​chủ không thể đặt loại nội dung sau khi tiêu đề HTTP đã được gửi] (http://stackoverflow.com/questions/9360857/server-cannot-set-content-type-after-http-headers-have-been-sent) –

Trả lời

0

có thể phải làm với tích hợp so với chế độ đường ống cổ điển. So sánh hai môi trường của bạn và đảm bảo chúng không khác nhau về mặt này.

IIRC ở chế độ đường ống tích hợp, bạn có thể đặt lại hoặc xóa tiêu đề sau khi đã được viết; ở chế độ cổ điển bạn không thể.

Nếu bạn không biết sự khác biệt, hãy kiểm tra this bài viết.

+1

Hai môi trường nào? Chỉ có một máy chủ, trừ khi tôi đang hiểu sai câu hỏi? – hvd

+0

Thú vị, tôi đọc câu hỏi là có một môi trường không hoạt động ("văn phòng") và những người khác làm. Nhưng trên một lần đọc thứ hai có lẽ chỉ có một máy chủ và đó là một vấn đề trình duyệt/mạng của một số loại. Nếu đó là trường hợp, lỗi trong bản ghi sự kiện hoặc là một cá trích đỏ hoặc đây là một vấn đề lạ. –

0

Tôi đang thêm câu trả lời thứ hai trong trường hợp tôi hoàn toàn hiểu nhầm câu hỏi khi tôi viết câu trả lời đầu tiên. Trong câu trả lời này, tôi sẽ giả định có chính xác một máy chủ và đây là một vấn đề trình duyệt/người dùng cụ thể.

  1. Xác nhận rằng lỗi bạn đã đăng không phải là cá trích đỏ-- hãy đảm bảo nó xảy ra khi người dùng gặp phải lỗi của họ.

  2. Vui lòng mô tả những hành vi liên quan đến các lỗi (ví dụ như những gì hiện 500 thông báo lỗi hiển thị trình duyệt? Lỗi hệ thống của một số loại? Mạng ngắt kết nối?)

  3. Kiểm tra giao thông đến từ các trình duyệt (ví dụ: nhìn tại nhật ký IIS). Máy chủ của bạn không quan tâm đến bất kỳ điều gì về người dùng khác ngoài cách anh ta xuất hiện trong lưu lượng truy cập. Đặc biệt, tôi sẽ theo dõi những khác biệt trong tiêu đề chấp nhận, có thể là trình duyệt cụ thể và có thể kích hoạt một đường dẫn logic khác trong máy chủ-- một cách cố gắng đặt loại nội dung cho nội dung mà trình duyệt của người dùng chấp nhận.

Dưới đây là đoán hoang dã của tôi lúc trước câu trả lời cho bây giờ:

Mục đích của ResultsXml.aspx là để trả về một tài liệu của một số loại; tài liệu đó yêu cầu ứng dụng bên ngoài (chẳng hạn như trình xem PDF hoặc XML); nó trả về nó với một bố cục nội dung; và chính sách bảo mật cục bộ của máy tính văn phòng sẽ tắt bộ nhớ đệm. Trong trường hợp này, ứng dụng của bên thứ ba sẽ không tìm thấy tệp vì bộ nhớ cache sẽ không có ở đó.

Nếu tôi sai, xin vui lòng gửi ở trên, và tôi sẽ tiếp tục đoán :)

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