2013-04-02 31 views
19

Chỉ cần dành nhiều thời gian chọn lọc thông qua lời khuyên mâu thuẫn về vấn đề này, và nghĩ rằng tôi sẽ đăng giải pháp của mình.HttpModule không được gọi trong .NET 4.5

Môi trường của tôi là .NET 4.5, Visual Studio 2012, đang làm việc trên ứng dụng MVC 4. Tôi đã tạo một Mô-đun Http giống như tôi đã làm trong quá khứ và thêm nó vào Web.config như sau:

<configuration> 
<system.web> 
    <httpModules> 
    <add name="MyModule" type="Services.MyModule, Services" /> 
    </httpModules> 
</system.web> 
</configuration> 

Tuy nhiên, ứng dụng không bao giờ được gọi là Init() của mô-đun. Cuối cùng, tôi thấy lời khuyên rằng các module thay vì nên bên <system.webServer>, và các yếu tố được đặt tên <modules> thay vì <httpModules>, như vậy:

<configuration> 
<system.webServer> 
    <modules> 
    <add name="MyModule" type="MyModule" type="Services.MyModule, Services" /> 
    </modules> 
</system.webServer> 
</configuration> 

Re-chạy ứng dụng, và nó được gọi là Init() như mong đợi. FWIW, trang với hướng là ở đây: http://msdn.microsoft.com/en-us/library/ms227673.aspx

HTH

+3

Bạn nên chia câu hỏi của bạn trong 2 phần: một câu hỏi và câu trả lời của bạn – cheesemacfly

+0

Bạn không thể có HAI 'loại' trong Fandango68

Trả lời

22

<system.web> là dành cho IIS 6 và dưới đây (bao gồm cả Cassini), <system.webServer> là dành cho IIS 7 trở lên. Tôi thường đặt ở cả hai - chỉ trong trường hợp - và sau đó thêm nút này để <system.webServer> vì vậy nó không barf trên dư thừa:

<validation validateIntegratedModeConfiguration="false" /> 
+1

STill doesnt work tho. – AgentFire

+0

đó là một lớp lót tuyệt vời! –

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