2010-01-22 26 views
15

Tôi đang cố gắng sử dụng elmah cho ứng dụng MVC của mình và tôi đã làm theo các bước trên wiki: http://code.google.com/p/elmah/wiki/MVC, nhưng ngay cả khi cố gắng truy cập myapp/elmah.axd trang:ASP.NET MVC - Elmah không hoạt động và trả lại trang 404 cho elmah.axd

404 - Không tìm thấy tệp hoặc thư mục.

Bất kỳ ai cũng có thể giúp tôi?

OBS: IIS Version của tôi là 7,5


Nếu giúp tôi đăng các phần thích hợp của web.config của tôi:

<sectionGroup name="elmah"> 
    <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" /> 
    <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" /> 
    <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" /> 
    <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" /> 
</sectionGroup> 
... 
</connectionStrings> 
<elmah> 
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" /> 
</elmah> 
<system.web> 
... 
<httpHandlers> 
    <remove verb="*" path="*.asmx" /> 
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" /> 
    <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 
</httpHandlers> 
<httpModules> 
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />    
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 
</httpModules> 

Và tôi Global.asax.cs

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
... 
+0

Phiên bản IIS của bạn là gì? – Restuta

+0

Bạn đang sử dụng phiên bản IIS nào? Tôi chỉ hỏi vì có lẽ trình xử lý không nằm trong phần .config. Trong IIS7, nó cần nằm trong phần . Có thể là một cái gì đó khác hoàn toàn ... – hunter

+0

Cảm ơn các bạn, tôi đang sử dụng IIS 7.5 – zanona

Trả lời

2

Thử thêm tệp này vào tệp web.config của bạn trong

<system.webServer> 

    <handlers> 
     <remove name="ErrorLog" /> 
     <remove name="ErrorMail" /> 
     <remove name="ErrorFilter" /> 
     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />    
     <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />  
    </handlers>  
</system.webServer> 
+1

Thật lạ, bây giờ tôi đang gặp lỗi máy chủ nội bộ 500 - – zanona

+0

Lỗi cấu hình Thiếu thuộc tính bắt buộc 'đường dẫn' – zanona

6

Đây là cách hay để sử dụng ELMAH trong MVC here không sử dụng axd mà là bộ điều khiển và tùy chỉnh ElmahActionResult.

+0

Điều này thật tuyệt (NuGet vừa không đặt đúng cấu hình cho tôi) nhưng bạn nên nâng cấp chính các phần mã và dán chúng vào đây để tránh liên kết-thối trên SO. Cảm ơn các giải pháp. –

0

Để giúp những người khác trải nghiệm những gì @zanona gặp phải trong năm 2010 (xem nhận xét về câu trả lời của @ hunter ở trên), thay đổi sau đây đã sửa lỗi "Lỗi HTTP 500.19 - Lỗi Máy chủ Nội bộ" cho tôi ngày hôm nay. Lưu ý vị trí của các thẻ cấu hình trong trả lời của @ hunter là những gì gây ra lỗi @ zanona. Các thẻ @hunter được đề cập thuộc về tiêu đề mô-đun, không phải là trình xử lý!

<modules> 
    <remove name="ErrorLog" /> 
    <remove name="ErrorMail" /> 
    <remove name="ErrorFilter" /> 
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />    
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 
</modules>  

Việc sửa chữa trên loại bỏ đối với tôi rất giống nhau "Config Lỗi - Thiếu yêu cầu thuộc tính 'path'" vấn đề mà @zanona đầu tiên được báo cáo. Lỗi đó là kết quả của cách các thẻ trong nhóm xử lý được dự kiến ​​sẽ được cấu trúc, và các thẻ sắp xếp lại của anh ấy rõ ràng không có thuộc tính path (vì chúng không thuộc về đó, mà là thuộc về thẻ mô-đun!). Bây giờ, đây là những thẻ trong phần trình xử lý sẽ trông giống như:

<handlers> 

    <add name="elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 

</handlers> 

Lưu ý thuộc tính đường dẫn có mặt ở đó? Ah!

Nhờ @hunter và @zanona vì họ đã đặt tôi trên con đường tôi cần để giải quyết vấn đề của mình.

(LƯU Ý: Tôi đã cố chỉnh sửa bài đăng gốc từ @hunter ở trên để thực hiện chỉnh sửa nhưng đánh giá ngang hàng chậm và tôi nghĩ tôi sẽ giữ câu trả lời này ở đây để giúp bất kỳ ai phải đối mặt với cùng một thách thức trong khi đó. Khi chỉnh sửa đó được chấp nhận, chúng tôi có thể xóa bài đăng này.)

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