我已經被配置爲與企業庫5「登錄應用程序塊」 WCF服務「驗證應用程序塊集成WCF」和「異常處理應用程序塊WCF提供商」並且配置爲使用它流暢的API是這樣的:類型ExceptionPolicyImpl具有長度爲2的無法多個構造消除歧義
builder.ConfigureExceptionHandling()
// -----------------------------------------------------
// Preventing Enterprise Library Validation Block exceptions from getting shielded.
// -----------------------------------------------------
.GivenPolicyWithName("WCF Exception Shielding")
.ForExceptionType<FaultException<ValidationFault>>()
.ThenDoNothing()
// -----------------------------------------------------
// Shielding unhandled exceptions
// -----------------------------------------------------
.ForExceptionType<Exception>()
.LogToCategory("My Logging Category")
.WithSeverity(TraceEventType.Critical)
.ShieldExceptionForWcf(typeof(ServiceUnhandledFault), Resources.UnhandledException_ErrorMessage)
.ThenThrowNewException();
服務實現:
[ServiceContract]
[ValidationBehavior]
[ExceptionShielding("WCF Exception Shielding")]
public interface IMyService
{
[OperationContract]
[FaultContract(typeof(ValidationFault))]
[FaultContract(typeof(ServiceUnhandledFault))]
void InsertEntity(MyEntity file);
}
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerCall)]
public partial class MyService : IMyService { ...Implementation... }
如果我把我的服務的調試行爲,假「IncludeExceptionDetailInFaults」屬性和調用服務操作w ^第i個,將不能正確地驗證以下異常的實體將在服務拋出:
Microsoft.Practices.Unity.ResolutionFailedException:依賴解析失敗,TYPE =「Microsoft.Practices.EnterpriseLibrary.ExceptionHandling。 ExceptionPolicyImpl「,name =」WCF異常屏蔽「。 發生異常時:解析時。 例外是:InvalidOperationException - 類型ExceptionPolicyImpl具有長度爲2的多個構造函數。無法消除歧義。
但是,如果我將IncludeExceptionDetailInFaults設置爲true,驗證錯誤將返回給客戶端。
有誰知道我錯過了什麼?
我試圖配置_Ent庫4.1_爲*舊的應用程序.NET CLR 3.5 2.0 APPPOOL *和_Ent庫5.0_的*新應用.NET CLR 4.5 4.0 APPPOOL *有兩個配置文件(web.config中)和我得到同樣的錯誤。 – Kiquenet