[ 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(); |