[ Jane Smith @ 23.03.2010. 15:41 ] @
Imam jedno pitanje. Napravila sam 2 aplikacije server i klijent koristenjem WCF-a koristenjem wshttpbindinga. Lokalno sve radi savrseno, kad klijent stavim na jedno racunalo a server na drugo, onda stvar puca. Pokusala sam sve moguce i nemoguce i nakon svakog mog pokusaja da rijesim problem dobivam neku drugu poruku, uglavnom je rjec o SecurityNegotiationException. Nasla sam i primjere s neta, koji naravno rade lokalno ali ne i udaljeno. Zanima me je li rjec i postavkama u windowsima ili ja nesto krivo radim, iako ne znam sto bi to bilo jer nekako pretpostavljam da bi sve trebalo biti isto osim sto localhost zamjenim sa stvarnom adresom. Inace stvar uredno radi sa basichttpbindingom, a problem s time je sto on ne podrzava Session, a meni to treba. Trebam i duplexe, za koje ne znam dali su podrzani sa strane net.tcpa, tako da vjerovatno je jedino rjesenje wshttpbinding.

Server:

Code:
WSHttpBinding binding = new WSHttpBinding();
            binding.Security.Mode = SecurityMode.None;

            Uri u = new Uri("http://localhost:60000/TmpWCF");
            EndpointAddress ea = new EndpointAddress(u);
           
            ServiceHost sh = new ServiceHost(typeof(TmpWCF.StockService));
            sh.AddServiceEndpoint(typeof(IStockService), binding, u);
            System.ServiceModel.Description.ServiceMetadataBehavior smb = new System.ServiceModel.Description.ServiceMetadataBehavior();
            smb.HttpGetEnabled = true;
            smb.HttpGetUrl = u;
            sh.Description.Behaviors.Add(smb);

            
            sh.Open();

            Console.WriteLine("Press <Enter> to terminate...");
            Console.ReadLine();
            sh.Close();


Klijent:

Code:
WSHttpBinding binding = new WSHttpBinding();
            binding.Security.Mode = SecurityMode.None;
        
            Uri u = new Uri("http://192.168.1.24:60000/TmpWCF");
            EndpointAddress address = new EndpointAddress(u);

            ChannelFactory<IStockService> cf = new ChannelFactory<IStockService>(binding, address);

            IStockService stockService = cf.CreateChannel();
            Console.WriteLine(stockService.GetPrice("something").ToString());
            Console.ReadLine();


[ mmix @ 23.03.2010. 16:08 ] @
posto si iskljucila security moras da ukljucis WS-ReliableMessaging inace sessije ne rade.

[ Jane Smith @ 24.03.2010. 07:15 ] @
Duznik sam ti i to ozbiljno mislim. Mucim se s time vec 3 dana i probala sam to sve postaviti ali valjda nisam iskljucila sigurnost kad sam postavljala reliablesession i obrnuto, a mozda nesto drugo nije stimalo pa mi poruke nisu prolazile jer sam vec te propertije naucila napamet a stvar i dalje nije radila. Imam jos jedno pitanje kod postavljanja sigurnosti sa windows client credential kako stvari funkcioniraju. Jer po meni ili server mora znati da je tom korisniku omogucen pristup, znaci on negdje mora pamtiti korisnika ili server i login moraju imati isti login i pass sto mi je suludo jer korisnik se ne mora spajati preko jednog racunala ili ne mora imati isti account na vise racunala. Probala sam i koristenjem UserName ali i to mi nije prolazilo.
Hvala ti jaaaako puno.