MaY*_*YaN 7 self-hosting simple-injector asp.net-web-api owin asp.net-web-api2
我有一个非常简单的Web Api v2.2自我托管在OWIN
public class StartUp
{
public void Configuration(IAppBuilder appBuilder, IConfigReader configReader)
{
var container = new Container();
container.Register<IConfigReader, ConfigReader>();
var config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
appBuilder.UseWebApi(config);
}
}
Run Code Online (Sandbox Code Playgroud)
当我然后使用我Main()
的:
WebApp.Start(baseAddress, appBuilder =>
new StartUp().Configuration(appBuilder, new ConfigReader()));
Run Code Online (Sandbox Code Playgroud)
但是当我尝试执行最后一行时,appBuilder.UseWebApi(config);
我得到以下异常:
SimpleInjector.dll中发生了'SimpleInjector.ActivationException'类型的第一次机会异常
附加信息:给定类型IHostBufferPolicySelector不是具体类型.请使用其他一个重载来注册此类型.
完整堆栈:
发生SimpleInjector.ActivationException _HResult = -2146233088
_message =给定类型IHostBufferPolicySelector不是具体类型.请使用其他一个重载来注册此类型.
HResult = -2146233088 IsTransient = false Message =给定类型IHostBufferPolicySelector不是具体类型.请使用其他一个重载来注册此类型.Source = SimpleInjector
StackTrace:at SimpleInjector.Advanced.DefaultConstructorResolutionBehavior.VerifyTypeIsConcrete(Type implementationType)InnerException:
问题不在于它看起来像是SimpleInjector
试图找到每个单一接口的绑定; 如果我为IHostBufferPolicySelector
它提供一个虚拟实现,则抛出其他一些接口,例如IExceptionHandler
等.
有相关线索的位置,但我不知道它如何与SimpleInjector
?Self主机是一个Console App,它安装了以下软件包:
事实证明,只有当我检查到时,异常才会Common Language Runtime Exceptions
出现thrown
当我取消选中该复选框时,一切都表现正常!这很奇怪!还把它包裹在一个Try-Catch (Exception)
甚至没有抓住它的地方,这使得它更加有趣/奇怪!
归档时间: |
|
查看次数: |
2351 次 |
最近记录: |