Ha, doakao sam mu
Ubacio sma WSDL u drugu web aplikaciju, namestio endpointURL u wsdlu i pokrenu tu veb aplikaciju i onda iz silverlighta ucitao taj wsdl. Smaracki, plus morao sam sam da dodam System.Xml.Serialization, System.Xml.Linq i ServiceModel.Extensions u reference (ovo poslednje sam otkrio tek kroz debug) i imao sam konfiguracioni problem (dole) ali na kraju sam naleteo na zid. Plus problem naravno kad dodje novi WSDL, sve ovo treba raditi iz pocetka.
Sto se tice konfiguracionog problema, nikako nisam uspeo da nateram silverlight runtime da ucita endpoint iz ServiceReferences.ClientCOnfiguraiton fajla. Stano prijavljuje da fali endpoint configuration za contract, a ne fali?!? Na kraju sam morao rucno da instanciram binding i endpoint u kodu da bi proradilo. Ima li neko ideju o cemu se radi? Endpoint postoji i contract je ispravan.
Greska: Could not find default endpoint element that references contract 'SalesforceAPI.Soap' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.
konfiguracija
Code (xml):
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="SoapBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<security mode="Transport" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://login.salesforce.com/services/Soap/c/20.0"
binding="basicHttpBinding" bindingConfiguration="SoapBinding"
contract="LogicSilverPOC.SalesforceAPI.Soap" name="Soap" />
</client>
</system.serviceModel>
</configuration>
ono sto je sad MNOGO MNOGO veci problem nazalost je sto Add Service Reference NIJE svario ceo WSDL iako je isti basic profile 1.1 kompatibilan (provereno 100%). SOAP headeri su deo specifikacije a silverlight WSDL ih izgleda uopste ne podrzava (sto znaci i da lazu kad kazu da je silverlight soap kompatibilan). Salesforce koristi SOAP headere umesto cookies da prosledjuje informacije o sessiji (i gomili drugih stvari, postoji 14 razlicitih headera) i sve WSDL operacije imaju ovaj header definisan.
Code (xml):
npr
<message name="Header">
<part element="tns:LoginScopeHeader" name="LoginScopeHeader"/>
<part element="tns:SessionHeader" name="SessionHeader"/>
...
</message>
...
<binding name="SoapBinding" type="tns:Soap">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="login">
<soap:operation soapAction=""/>
<input>
<soap:header use="literal" message="tns:Header" part="LoginScopeHeader"/>
<soap:body parts="parameters" use="literal"/>
</input>
...
silverlight add service je jednostavno IGNORISAO soap:header instrukcije, nije se cak ni potrudio da mi izadje u susret delimicno i da generise message i elemente (LoginScopeHeader, SessionHeader i poruke koje ga koriste ne postoje kao konstrukti u Reference.cs). Sad ja treba za SVAKI poziv bilo kog metoda da rucno generisem odgovarajuci Header XML, da presrecem outgoing pozive i da headere ubacujem svaki put u soapClient koristeci
OperationContext.Current.OutgoingMessageHeaders.
Ovo je mnogo neozbiljno

a posle sam ja hejter.
Ovo nece na dobro da izadje, jedno je bug, drugo je tvrditi da je nesto zavrseno a nije ni blizu.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić