2011-02-16 63 views
0

我有以下的註冊如何使用AutofacWebTypesModule來解決的HttpServerUtilityBase

builder.RegisterModule(new AutofacWebTypesModule()); 
    builder.Register<MyType>(ctx => 
    { 
     var server = ctx.Resolve<HttpServerUtilityBase>(); 
     ... 
    }); 

當我試圖通過一個構造上的控制器來解決的MyType,我得到下面的異常。我究竟做錯了什麼?

Autofac.Core.DependencyResolutionException 是由用戶代碼未處理
消息=否範圍匹配 表達 「值(Autofac.Builder.RegistrationBuilder`3 + <> c__DisplayClass0 [System.Web.HttpServerUtilityBase,Autofac .Builder.SimpleActivatorData,Autofac.Builder.SingleRegistrationStyle])。lifetimeScopeTag.Equals(scope.Tag)' 在請求實例的範圍內可見。

回答

1

讓人驚訝 - 該錯誤消息已經都錯了:)

問題是最有可能是你想直接從容器解決MyType(而不是在DependencyResolver要不你帶從一個單在其上的依賴性,其結果HttpServerUtilityBase部件僅能夠在一個網絡請求的上下文中使用。

試圖從Applicaiton_Start解決它也將失敗在IIS7集成的管道模式。

HTH! Nick

相關問題