2012-01-09 33 views
5

Tôi đang cố triển khai ứng dụng MVC3 đầu tiên của mình lên máy chủ chạy IIS-7.5. Tôi đã có những điều và chạy, nhưng tôi đang gặp một số rắc rối với các phương pháp gỡ lỗi của tôi. Tôi sử dụng cấu trúc gỡ lỗi độc quyền hoạt động tốt khi chạy ứng dụng cục bộ (sử dụng mô-đun "IIS Express" và Visual Studio) - nhưng khi triển khai đến máy chủ, tôi thậm chí không tạo được tệp gỡ lỗi, ít được in nhiều hơn.Ứng dụng gỡ lỗi ASP.NET MVC3_Start

Tệp gỡ lỗi được tạo trong sự kiện Application_Start, vì vậy tôi đặt một bản ghi sự kiện được dán trong sự kiện Application_Start và chạy ứng dụng cục bộ và trên máy chủ, chỉ để xem sự kiện có bị sa thải hay không. Nhật ký sự kiện của tôi cục bộ đã được đóng dấu theo ý định, nhưng các bản ghi sự kiện trên máy chủ không có bất kỳ dấu trang mới nào. Những gì đang xảy ra ở đây?

protected void Application_Start() 
    { 
    AreaRegistration.RegisterAllAreas(); 

//This is just some code that calls to another module I wrote to easily stamp to the Event logs - it works, trust me 
    EventLogging.Initialize(); 
    EventLogging.WriteEventLog("Application Start Called Successfully"); 
    } 
+0

bởi 'tệp gỡ lỗi' là bạn đang nói các mục nhật ký sự kiện (yêu cầu quyền trên nhật ký sự kiện từ nhận dạng hồ bơi ứng dụng của bạn) chứ không phải tệp vật lý? –

+0

@AdamTuliper Xin lỗi vì sự mơ hồ - "tệp gỡ lỗi", trong cụm từ ở trên, đề cập đến tệp vật lý. Tuy nhiên, tôi có thể ghi vào cả tệp vật lý lẫn bản ghi sự kiện. Hãy để tôi thử thêm Hồ sơ Nhận dạng Ứng dụng của tôi trực tiếp vào Quyền Đăng nhập Sự kiện ... –

+0

@AdamTuliper Ok, tôi đã thêm Bản sắc AppPool vào ACL cho EventLogs trực tiếp trong trình chỉnh sửa đăng ký - vẫn không có gì ... = (Có lẽ tôi có vấn đề cơ bản hơn? :: thở dài :: –

Trả lời

1

IIS 7.5 sử dụng các tài khoản ảo cho các ứng dụng hồ bơi.

Xem App Pool Identities. Đảm bảo danh tính của ứng dụng cụ thể có quyền truy cập vào thư mục thích hợp để đọc/ghi.

+0

Điều đó khá thú vị!Tôi đã có thể thêm danh tính hồ bơi ứng dụng của mình vào danh sách quyền (ACL), nhưng vẫn không có tệp. Tôi không biết cách thay đổi quyền trên nhật ký sự kiện để tài khoản này có thể viết cho họ - tôi nghĩ rằng bất kỳ tài khoản nào cũng có thể thực hiện điều đó ... –

+0

Cập nhật - Tôi có thể thêm Bản sắc AppPool của mình vào Bản ghi sự kiện cho phép ACL thông qua trình chỉnh sửa đăng ký, nhưng vẫn không có gì. –

+0

Hãy xem http://stackoverflow.com/questions/6351608/application-start-not-behaving-correctly-in-asp-net-4-0-application. Người đăng tải tuyên bố rằng việc ghi nhật ký của họ hoạt động ở mọi nơi ngoại trừ bắt đầu ứng dụng, điều đó có giống nhau không? – CtrlDot

2

Tôi tin rằng sự cố bạn đang gặp phải là quá trình IIS được chạy trong tài khoản Dịch vụ mạng. Theo mặc định, tài khoản này chỉ có quyền đọc và thực thi đối với thư mục gốc IIS. Do đó mọi nỗ lực ghi vào hệ thống tệp cục bộ sẽ không thành công.

Để thực hiện công việc này, bạn cần cung cấp cho tài khoản Dịch vụ mạng rõ ràng quyền truy cập ghi vào tệp được đề cập. Điều này có thể được thực hiện thông qua Windows Explorer.

  • Kích chuột phải vào tập tin và chọn Properties
  • Đến tab an ninh
  • Thêm ghi truy cập cho các dịch vụ mạng chiếm
+0

Tôi đã thêm Dịch vụ Mạng vào danh sách chứng khoán cho thư mục mẹ trang web và được truyền bá quyền đối với tất cả các đối tượng con - không có súc sắc. = ( –

+0

@ C.Barlow bạn đã kiểm tra bản ghi sự kiện hoặc đính kèm một trình gỡ lỗi? Có vẻ như một cái gì đó khác đang diễn ra rồi – JaredPar

+0

Các bản ghi sự kiện không hiển thị bất cứ điều gì. Tôi không biết cách đính kèm một trình sửa lỗi trước khi nó chạy qua ... –

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