1

这让我抓狂......我有一个 Web API 项目。我有一个奇怪的行为。我在调试器中运行它并使用 fiddler 来访问一个方法。发生的事情是,API 在构建后第一次在调试中运行时运行良好。但我第二次得到500。我已将问题归结为 TinyIOC 能够在第一次调试运行时自动注册 74 种类型,而在第二次运行时只有 13 种。我没有做任何改变。我构建,我开始调试它的工作原理。我停止调试,再次开始调试,但它没有。错误是它无法创建我的控制器,没有默认构造函数,这是由 TinyIOC 未注册类型引起的。但我不知道为什么。我只能假设 TinyIOC 可以看到的程序集在不同的运行中是不同的。但是如何?为什么?我难住了。

它是一个 Windows azure 云服务,运行在带有 Azure 仿真的 IIS express 上。. 有没有人反对过这个?

4

1 回答 1

2

以防万一其他人失去了他们生命的重要部分,我添加了这个,希望如果这是胡说八道,那么有人会插话。结果是 TinyIOC 调用了 AppDomain.CurrentDomain.GetAssemblies() 。但是 Asp.net 直到需要时才加载 dll。所以我添加了对 BuildManager.GetReferencedAssemblies(); 的调用。在初始化 TinyIOC 之前,这可能不是最好的解决方案,但它让我继续前进。我仍然不清楚为什么它在第一次调试运行时起作用......

于 2014-04-11T16:01:31.950 回答