10

Tôi đã viết 3 ứng dụng web ASP.net MVC và tất cả được triển khai trên máy chủ lưu trữ được chia sẻ với ISP của tôi.log4net ném ngoại lệ bảo mật trong ứng dụng web ASP.Net MVC

Tất cả 3 ứng dụng đều rất giống cấu hình và cài đặt. Ứng dụng thứ nhất được triển khai đến một máy chủ khác với máy chủ thứ 2 và thứ 3. Ứng dụng thứ nhất cho tôi không có lỗi.

Các ứng dụng thứ 2 và thứ 3 nhổ ra sau SecurityExceptionhơi: ngẫu nhiên:

alt text http://i46.tinypic.com/24p9pac.jpg

Link

Exception Text:

Security Exception 
Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file. 

Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' failed. 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 

[SecurityException: Request for the permission of type 'System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' failed.] 
    System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0 
    System.Security.CodeAccessPermission.Demand() +58 
    System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(String configKey, Boolean requirePermission, Boolean isTrustedWithoutAptca) +99 


Version Information: Microsoft .NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3082 

Tôi nhận được lỗi ở trên lần đầu tiên tôi nhấn trang sau khi triển khai hoặc chỉnh sửa web.config. Tuy nhiên, trên trang tiếp theo tải lại tôi không nhận được nó. 2 trang web sẽ được sử dụng tốt cho phần còn lại của ngày, nhưng sau đó sáng hôm sau tôi lại gặp lỗi tương tự.

Các lỗi xuất hiện một cách nhất quán sau khi tôi chỉnh sửa web.config mà tôi giả định đang buộc biên dịch lại?

Vui lòng trợ giúp. Tôi không chắc vấn đề là gì. Âm thanh như nó liên quan đến các thiết lập bảo mật trong IIS. Tất cả 3 ứng dụng web được thiết lập và triển khai theo cách rất giống nhau, ngoại trừ ứng dụng web đầu tiên không cung cấp lỗi trên máy chủ hoàn toàn khác.

Trả lời

20

Vì vậy, nó quay ra rằng lý do cho SecurityException trên là 3 lần

  • ISP của tôi đã ASP.net cấu hình để chạy trong tin tưởng vừa chế độ trên đó là các máy chủ mới hơn, và niềm tin đầy đủ Chế độ trên các máy chủ cũ hơn. Ứng dụng Web của tôi được phân chia giữa 2 máy chủ này, đó là lý do tôi nhận được hành vi khác nhau giữa các ứng dụng mặc dù chúng được cấu hình giống hệt nhau

  • Tôi đang sử dụng log4net cho khai thác gỗ lỗi, và trong tôi Global.asax tệp, tôi có các thông tin sau:

    protected void Application_Start() 
    { 
        RegisterRoutes(RouteTable.Routes); 
        log4net.Config.XmlConfigurator.Configure(); 
        log.Debug("Logging Initialized."); 
    } 
    

    Đường này - log4net.Config.XmlConfigurator.Configure(); là những gì đang ném ngoại lệ trên. Nó chỉ xảy ra một lần khi ứng dụng được khởi động, hoặc khởi động lại nếu chúng web.config được sửa đổi. Đó là lý do tại sao tôi không thể tìm ra vấn đề phát sinh từ đâu.

  • tôi đã có thêm một requirePermission = "false" đến configSection log4net trong web.config:

    <section name="log4net" requirePermission="false" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
    

Bây giờ nếu tôi đã phát triển trong chế độ tín nhiệm trung bình, tôi đã chọn những vấn đề này. Bạn có thể buộc ứng dụng của mình chạy ở chế độ tin cậy trung bình bằng cách thêm thông tin sau vào trang web của tôi.cấu hình:

<system.web> 
    <trust level="Medium"/> 
    </system.web> 

By buộc ứng dụng của tôi chạy trong chế độ tín nhiệm trung bình, tôi nhặt trừ nguồn trong dev chính xác nơi nó có nguồn gốc, và tìm ra những gì đã sai từ đó trên ..

+3

Tuyệt vời tip cho đặt mức tin cậy thành Medium, do đó cho phép gỡ lỗi trên máy cục bộ. Cảm ơn! – Adventure

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