2013-08-20 34 views
5

Tôi đã tạo một trang web và triển khai nó cho Windows Azure. Một nơi nào đó trong quá trình phát triển, tôi đã kích hoạt SSL từ các thuộc tính của dự án và mọi thứ (địa chỉ https) hoạt động tốt trong localhost và trên trang web Azure, nơi tôi đã triển khai trang web của mình.Không thể tắt SSL cho trang web

Hiện bản dùng thử Azure của tôi hết hạn và tôi đang chuyển trang web của mình sang một máy chủ asp.net miễn phí khác không hỗ trợ SSL mà không phải trả tiền. Vì vậy, tôi nghĩ rằng nó sẽ được dễ dàng, chỉ cần thiết lập SSL Bật trở lại False như nó đã được khi tôi lần đầu tiên bắt đầu phát triển và tất cả mọi thứ là tốt, nhưng đó không phải là trường hợp.

Trang web của tôi từ chối hoạt động sau khi tôi tắt SSL. Hình ảnh của thiết lập Visual Studio của tôi với IIS Express đã mở và cho thấy rằng có một máy chủ ở đúng địa chỉ: http://db.tt/EKTcxPsd

Khi tôi khởi chạy trang web từ Visual Studio, nó bắt đầu tải trang localhost:44300. Sau một vài giây, tôi được chuyển hướng đến https://localhost hiển thị lỗi "trang web không khả dụng". Ảnh: http://db.tt/VntZTpKD

Tôi đã thử xóa thư mục IISExpress và khởi chạy lại studio trực quan. Tệp applicationhost.config được tạo lại có thông tin chính xác (theo như tôi biết)

<site name="PrototypeNew-bootstrap3" id="2"> 
    <application path="/" applicationPool="Clr4IntegratedAppPool"> 
    <virtualDirectory path="/" physicalPath="E:\path-shortened\Visual Studio 2013\Projects\PrototypeNew\PrototypeNew-branch" /> 
    </application> 
    <bindings> 
    <binding protocol="http" bindingInformation="*:44300:localhost" /> 
    </bindings> 
</site> 

Tôi có cùng một vấn đề sau khi xuất bản trang web lên môi trường lưu trữ. Đi tới http://mywebsite.com chuyển hướng tôi đến https://mywebsite.com và hiển thị lỗi giống như trang localhost.

Nếu tôi bật lại SSL thì địa chỉ https trên localhost của tôi bắt đầu hoạt động tốt.

Có ai biết điều gì đang xảy ra ở đây không? Có một chuyển đổi SSL khác ở đâu đó mà tôi quên tắt không? Tại sao nó luôn chuyển hướng tôi đến https

EDIT. Đã cố tạo một dự án asp.net mvc 4 mới. Ra mắt nó và nó hoạt động tốt. Đã sao chép web.config vào dự án của tôi và nó vẫn đang chuyển hướng đến https:localhost

+1

Bạn có quy tắc ghi đè URL trong web.config của mình để chuyển hướng tất cả lưu lượng truy cập http đến https không? – Tommy

+0

Có vẻ như tôi làm, nhưng tôi thì không. Tôi chỉ cố gắng để gỡ lỗi và đặt một breakpoint trong Global.asax.cs Application_Start(). Điểm ngắt được nhấn và trang được chuyển hướng sau khi rời khỏi phương thức – JoonasL

Trả lời

13

OK cuối cùng tôi đã tìm được giải pháp. FilterConfig.cs trông giống như sau:

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
     filters.Add(new System.Web.Mvc.AuthorizeAttribute()); 
     filters.Add(new RequireHttpsAttribute()); // problem 
    } 

Nó phải tự động thêm RequireHttpsAttribute khi tôi bật SSL và sau đó không xóa nó. Loại bỏ nó bằng tay cố định vấn đề.