Enterprise Library

Mock di Unity con Rhino Mocks a 64 bit: System.BadImageFormatException

Siccome ho perso un sacco di tempo con questo problema lo posto sul blog in modo da evitare la stessa trafila ad altri. In un progetto avevamo l’esigenza di fare mocking dello UnityContainer dell’Enterprise Library al che abbiamo scritto il codice sotto: 1: mockUnityContainer = mocks.DynamicMock<IUnityContainer>();   Però durante il Run dei test da VSTS 2008 continuavamo a ricevere una System.BadImageFormatException. Al che dopo varie ricerche e tentativi ho trovato qui la soluzione, che consiste nel fare il mocking della classe invece che dell’Interfaccia come sotto:   ...

Enterprise Library + Biztalk

Questa settimana stavo per spaccare tutto perchè su 3 host Biztalk in un gruppo, 1 non ne voleva sapere di loggare gli eventi con l'Enterprise Library di Microsoft. La cosa sconvolgente è che le applicazioni Biztalk non loggavano nulla nell'EventViewer né tantomeno l'Enterprise Library o le applicazioni Biztalk distribuite. Il problema ? L'utente con cui girava l'host instance di Biztalk non aveva privilegi amministrativi necessari per registrare l'Event Source nell'Event Log Application. Ma la cosa sconvolgente è che se l'Enterprise Library riceve un'eccezione mentre cerca di loggare un errore con il Logging Handler, c'è un fantastico catch...

Enterprise Library e Distributor per logging eccezioni

Siccome ci ho perso un po' di tempo a trovare il problema e la relativa soluzione la posto anche come reminder per il futuro. Se utilizzate l'Exception Handling Application Block dell'Enterprise Library insieme al distributor in modo da inviare eccezioni da più server verso un'unica coda MSMQ da cui recuperarle e scriverle per esempio in un DB centralizzato, dovete prestare attenzione al meccanismo di serializzazione utilizzato. Per poter funzionare correttamente il distributor si deve utilizzare il BinaryFormatter, di conseguenza se create un'eccezione Custom es. XYZ.InvalidMerchantException questa viene serializzata correttamente dal programma d'origine, ma quando arriva sul server di...