2008-11-03 22 views
24

Tôi đang sử dụng khung công tác DI của windsor trong một dự án MVC của tôi. Dự án hoạt động tốt khi tôi đã cố gắng để chạy từ Visual Studio 2008.Có vẻ như bạn quên đăng ký mô-đun http với Lâu đài Windsor với IIS7

Nhưng khi tôi đã cố gắng để chạy các dự án tạo ra một ứng dụng trong IIS7 sau đó tôi nhận được thông báo lỗi sau:

Hình như bạn quên đăng ký http mô-đun Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule Add '< thêm name = "PerRequestLifestyle" type = "Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.MicroKernel"/>' để phần trên web của bạn. config

Nhưng mô-đun này đã tồn tại trong phần httpmodule của tệp web.config.

Có ai biết tôi phải làm gì để loại bỏ vấn đề này không.

Trả lời

35

Hãy thử thêm nó vào phần system.webServer?

<configuration> 
    <system.web> 
     <httpModules> 
      <add name="PerRequestLifestyle" type="..." /> 
     </httpModules> 
    </system.web> 
    <system.webServer> 
     <modules> 
      <add name="PerRequestLifestyle" type="..." /> 
     </modules> 
    </system.webServer> 
</configuration> 
+0

Cảm ơn. Đã giải quyết vấn đề. –

+4









< thêm tên = "PerRequestLifestyle" type = "..." />



... cho tôi. – Artiom

+0

phải được sửa là dưới . –

4

Nó đã giúp tôi:

<system.web> 
    <httpModules> 
     <add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor" /> 
    </httpModules> 
42

tôi đã có lỗi tương tự, nhưng nó gây ra bởi một lý do khác:

tôi đã cố gắng để giải quyết IService tại Application_Start để chế biến route class tùy chỉnh, nhưng kiểu cho IService đã được đăng ký với PerWebRequestLifestyle. Hệ thống con định tuyến vẫn ở mức cao hơn mà yêu cầu web và đối tượng không tồn tại ở thời gian xử lý tuyến đường.

+8

+1 rất lớn. Tôi cũng đang cố gắng sắp xếp PerWebRequest Lifestyles trong Application_Start của mình và nó đã gây ra những sai lầm tích cực về lỗi này. – Kivin

+2

Tương tự ở đây. Di chuyển đăng ký vào BeginRequest giải quyết nó trong trường hợp của tôi. – RMD

+0

Thay vì di chuyển đến BeginRequest tôi đã tạo ra một vòng đời lai để sử dụng tạm thời khi HtttpContext.Request là null. – Cookie

2

Tôi đã gặp vấn đề này trong môi trường dev của tôi. Điều đáng chú ý là thẻ này:

<validation validateIntegratedModeConfiguration="false"/> 

Mặc dù rõ ràng là những gì nó nói trên tin, nó có thể ngăn chặn những lỗi này xuất hiện. Giả sử phần còn lại của cấu hình của bạn đang hoạt động Ok.

gì đã làm việc cho tôi:

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"> 
    <remove name="PerRequestLifestyle"/> 
    <add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor"/> 
    </modules> 
</system.webServer> 
Các vấn đề liên quan