Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Exception de stockage isolé :impossible de déterminer l'identité du domaine

Vous pouvez trouver une solution ici :http ://rekiwi.blogspot.com/2008/12/unable-to-determine-identity-of-domain.html

Dans le composant COM, créez un nouveau AppDomain avec la preuve appropriée et exécutez le code dans celui-ci.

Voici un exemple de code qui a résolu le problème pour moi :

AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory.ToString();

//Then we need our evidence
System.Security.Policy.Evidence evidence = new System.Security.Policy.Evidence();
evidence.AddHost(new System.Security.Policy.Zone(System.Security.SecurityZone.MyComputer));

//Now we can fire up an AppDomain running with that evidence.
AppDomain domain = AppDomain.CreateDomain("YourDll.YourClass", evidence, setup);

YourDll.YourClass yourclass = (YourDll.YourClass)domain.CreateInstanceAndUnwrap(typeof(YourDll.YourClass).Assembly.FullName, typeof(YourDll.YourClass).FullName);

yourclass.CallYourMethod();

Tous les types que vous souhaitez regrouper sur AppDomains doivent être marqués [Serializable()] et doivent hériter de MarshalByRefObject.Par exemple :

namespace YourDll
{
[Serializable()]
public class YourClass: MarshalByRefObject
{
...