1

当我将 WCF 与 StructureMap 一起使用时,我遇到了这个奇怪的错误。

我还尝试搜索堆栈,并且有一些建议安装修补程序的答案:Operation could destabilize the runtime in StructureMap

但我无法安装修补程序,因为"Software Update KB2748645 Installation Wizard does not apply, or is blocked by another condition on your computer. Please click the link below for more details."

public class StructureMapInstanceProvider : IInstanceProvider
{
    private readonly Type _serviceType;
    public StructureMapInstanceProvider(Type serviceType)
    {
        _serviceType = serviceType;
    }
    public object GetInstance(InstanceContext instanceContext, Message message)
    {
        return ObjectFactory.GetInstance(_serviceType); // error thrown here
    }
}

An exception of type 'StructureMap.StructureMapConfigurationException' occurred in StructureMap.dll but was not handled in user code. 
Operation could destabilize the runtime.

Additional information:
Attempting to create a build plan for concrete type ProfileService
1.) Attempting to create a BuildPlan for Instance of ProfileService -- ProfileService
2.) Container.GetInstance(ProfileService)

堆栈跟踪

   at StructureMap.Building.ConcreteType.SourceFor(String ctorOrSetter, String name, Type dependencyType, Object value) in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\Building\ConcreteType.cs:line 200
   at StructureMap.Building.ConcreteType.<>c__DisplayClass4.<BuildConstructorStep>b__3(ParameterInfo x) in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\Building\ConcreteType.cs:line 112
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at StructureMap.StringExtensions.Each[T](IEnumerable`1 enumerable, Action`1 action) in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\Extensions.cs:line 10
   at StructureMap.Building.ConstructorStep.Add(IEnumerable`1 dependencies) in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\Building\ConstructorStep.cs:line 79
   at StructureMap.Building.ConcreteType.BuildConstructorStep(Type pluggedType, ConstructorInfo constructor, DependencyCollection dependencies, Policies policies) in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\Building\ConcreteType.cs:line 115
   at StructureMap.Building.ConcreteType.BuildSource(Type pluggedType, ConstructorInfo constructor, DependencyCollection dependencies, Policies policies) in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\Building\ConcreteType.cs:line 27

我真的不明白这个错误,我也找不到它来自哪里。所以我开始征求建议。

4

1 回答 1

1

经过一天的混乱,这是解决方法(实际上不是解决方案):

在 Visual Studio(我使用的是 2013)中,转到:

工具 -> 选项 -> IntelliTrace -> 常规 -> 取消IntelliTrace events and call information 选择(或选择IntelliTrace events only

我不知道为什么这个选项会导致问题。但是这种解决方法对我来说效果很好。您可以在这里找到同样的问题: https ://www.devexpress.com/Support/Center/Question/Details/Q512306

outro56 2 years ago
Ok, I think I may have found a workaround as per Q262635, it has to do with IntelliTrace; 
simply changing the IntelliTrace settings to "IntelliTrace events only" was able to get 
around this problem (i.e. Tools->Options->IntelliTrace->General)
于 2014-10-07T08:39:07.413 回答