【问题标题】:WCF, Unity Container Microsoft.Practices.Unity.Configuration.dll but was not handled in user codeWCF,Unity Container Microsoft.Practices.Unity.Configuration.dll 但未在用户代码中处理
【发布时间】:2016-02-16 05:05:19
【问题描述】:

我正在使用 Unity 依赖注入开发 WCF。在 VS2012 中一切正常服务是 32 位版本。现在我们正在将服务升级到 x64 位版本,服务更新成功。但是在运行应用程序时,我得到了 Unity 异常,web.config 文件也可以。

例外是:

Microsoft.Practices.Unity.Configuration.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理

附加信息:无法解析类型名称或别名 ReportDecodingDefault。请检查您的配置文件并验证此类型名称。

Web.Config:

  <typeAlias alias="ISignatureCalculation" type="Diagnostics.Report.Repository.Contract.ISignatureCalculation, Diagnostics.Report.Repository.Contract" />
  <typeAlias alias="SignatureCalculationDefault" type="Diagnostics.Report.Signature.SignatureCalculation, Diagnostics.Report.Signature" />
  <typeAlias alias="SignatureCalculationBGL" type="Diagnostics.Report.Signature.BGL.SignatureCalculation, Diagnostics.Report.Signature.BGL" />
  <typeAlias alias="SignatureCalculationPrototyp" type="ErrorReportAnalyzer.SignatureCalculator, ErrorReportAnalyzer" />
  <typeAlias alias="SignatureCalculationRefactored" type="ExceptionBasedAndReferencesMappingAlgorithm.SignatureCalculator, ExceptionBasedAndReferencesMappingAlgorithm" />

  <typeAlias alias="IDataStore" type="Diagnostics.Report.Repository.Contract.IDataStore, Diagnostics.Report.Repository.Contract" />
  <typeAlias alias="DataStoreDefault" type="Diagnostics.Report.Repository.SqlDb.SqlDataManager, Diagnostics.Report.Repository.SqlDb" />
</typeAliases>
  <container>
  <types>
     <type type="IReportDecoding" mapTo="ReportDecodingDefault"></type>
    <type type="ISignatureCalculation" mapTo="SignatureCalculationRefactored"></type>
    <type type="IDataStore" mapTo="DataStoreDefault"></type>
  </types>
    </container>
</unity>

加载配置时出现异常

容器 = newUnityContainer();

Container.LoadConfiguration(); (这里例外)

请帮忙。

【问题讨论】:

    标签: c# web-services wcf dependency-injection enterprise-library


    【解决方案1】:

    LoadConfiguration 将使用定义了 ReportDecodingDefault 的配置文件。也许这个类是在仍然编译为 32 位的库中实现的?

    【讨论】:

    • 嗨,杰罗恩,感谢您的回复。 “ReportDecodingDefault” 类库是在 x64 中编译的,而不是在 32 位中编译的。请提供任何其他线索
    • 我找到了这个link。您确定没有执行 Unity 升级吗?我还注意到,在最初的问题中,ReportDecodingDefault 没有类型别名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 2014-01-07
    相关资源
    最近更新 更多