Aynı işlemde birlikte yaşayamayan iki bileşeni ayırmak için kullanacağım oldukça basit bir istemci-sunucu uygulamasına sahibim. Onları geliştirirken (sunucu bir exe, istemci bir kütüphanedir), tüm birim testlerim gübre olarak domuzlar kadar mutludur. Doğrusu bu aşamada basitlik için yapılandırma dosyalarını daha kodunda her iki tarafta Uzak hizmet kurdunuzBir IpcChannel niçin "Anonim bir güvenlik belirteci açılamıyor?"
System.Runtime.Remoting.RemotingException: An error occurred while processing the request on the server: System.Security.SecurityException: Cannot open an anonymous level security token.
at System.Security.Principal.WindowsIdentity.GetCurrentInternal(TokenAccessLevels desiredAccess, Boolean threadOnly)
at System.Security.Principal.WindowsIdentity.GetCurrent()
at System.Runtime.Remoting.Channels.Ipc.IpcServerTransportSink.ServiceRequest(Object state)
The Zone of the assembly that failed was:
MyComputer.
: Başka bir yerde kütüphane kullanan yeniden geçmek, ben şu istisna olsun. Onlar etkili aynıdır:
BinaryClientFormatterSinkProvider client = new BinaryClientFormatterSinkProvider();
BinaryServerFormatterSinkProvider server = new BinaryServerFormatterSinkProvider();
server.TypeFilterLevel = TypeFilterLevel.Full;
Hashtable config = new Hashtable();
config["name"] = "SomeName";
config["portName"] = "SomePortName";
config["typeFilterLevel"] = "Full";
config["impersonate"] = "true";
config["tokenImpersonationLevel"] = "Impersonation";
config["useDefaultCredentials"] = "True";
config["secure"] = "True";
Channel = new IpcChannel(config, client, server);
Yani soru şu: Neden remoting çerçeve bürünme etkinleştirildiğinde anonim belirteç oluşturmak isteyeyim? Bunun için cevap aramak için yerlerden tamamen tükendim.