2012-03-02 26 views
8

Tôi có ứng dụng web asp.net nằm trên máy chủ Tôi muốn tránh tất cả lỗi tùy chỉnh và máy chủ từ trang web của mình.Làm thế nào để tránh lỗi máy chủ/tùy chỉnh trong trang web?

Cho rằng tôi đã sử dụng

<customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPage/TryAgainLater.aspx"> <error redirect="~/ErrorPage/PageNotFound.aspx" statusCode="404"/> </customErrors> 

Sử dụng mã ở trên sẽ tránh được khả năng một số vấn đề. I E.

Giả sử "http://Exaple.com/Careers.aspx" Page sẵn trong trang web sau đó

Trường hợp 1. http://Exaple.com/Careersss.aspx "Nó được làm việc đúng theo trên quy tắc" của tôi.

Trường hợp 2. http://Exaple.com/[email protected]##Careersss.aspx "Không làm việc" Lưu ý: Ở đây tôi thêm ký tự đặc biệt

Trường hợp 3: http://Exaple.com/Careersss.aspxxxx "Không làm việc" Lưu ý: thêm nhân vật sau khi ".aspx"

trường hợp 4: http://Exaple.com/Careersss.aspx/[email protected][email protected][email protected] ! "Không hoạt động thiết kế phá vỡ ở đây". Lưu ý: Thêm '/' với ký tự đặc biệt.

hãy giúp tôi khi người dùng nhận được trường hợp 2,3,4 sau đó họ tự động chuyển hướng đến trang lỗi.

Cảm ơn trước.

+1

Vậy ... câu hỏi là gì? Và nó liên quan đến javascript như thế nào? – kirilloid

+0

@kirilloid Tôi tưởng tượng nó phải làm với trường hợp thứ hai của anh ta, nơi anh ta sử dụng biểu tượng băm, nhưng nó không hoàn toàn rõ ràng từ câu hỏi. – treeface

+0

Ở đây tôi muốn tránh URL không cần thiết nếu một số từ phía bên ngoài cố gắng làm sao lãng trang web của chúng tôi thì tôi chỉ muốn họ trực tiếp truy cập trang lỗi. –

Trả lời

1

Nếu bạn không muốn thay đổi cài đặt IIS, bạn có thể cài đặt xử lý của riêng bạn cho 404 lỗi trong Global.asax. Chỉ cần thêm phương pháp này để Global.asax.cs của chúng tôi tập tin code-behind:

protected void Application_EndRequest(object sender, EventArgs e) 
{ 
    HttpResponse response = HttpContext.Current.Response; 
    if (response.StatusCode == 404 && response.SubStatusCode == 0) 
    { 
     response.Redirect("/test/TryAgainLater.aspx?error=NotFound"); 
     response.End(); 
    } 
} 

Nếu nó không khắc phục vấn đề và bạn vẫn đang nhận được 404 trang lỗi, thêm cài đặt này để file web.config của bạn:

<configuration> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 
</configuration> 
Các vấn đề liên quan