Conforme prometido, seguem os exemplos que utilizei nas palestras de Visual Studio e de SQL Server na Green em Julho e agosto.
Lembrando que em setembro iremos disponibilizar os ppts tambem.
Palestra SQL Server 2008 (1).zip (91,48 kb)
Palestra Visual Studio WPF+WCF+Silverlight (3).zip (674,91 kb)
Ao executar um componente feito em Silverlight que acesse um dados externo como um WebService ou um componente WCF você poderá receber uma mensagem totalmente insignificante, como abaixo:
"Message: Unhandled Error in Silverlight Application An exception occurred during the operation, making the result invalid. Check InnerException for exception details. at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
at SilverlightApplication1.MeuWS.RetornaPessoaCompletedEventArgs.get_Result()
at SilverlightApplication1.MainPage.X_RetornaPessoaCompleted(Object sender, RetornaPessoaCompletedEventArgs e)
at SilverlightApplication1.MeuWS.WSExemplo1SoapClient.OnRetornaPessoaCompleted(Object state)
Line: 1
Char: 1
Code: 0"
Caso voce acesse o InnerException como sugerido na mensagem receberá um erro de access denied por não haver manifesto de confiança cross-domain ou cross-forest.
Este erro acontece porque o Silverlight ao acessar um componente externo precisa que seja confiado para uso naquela URL.
O arquivo ClientAccesspolicy.xml é muito simples e deve estar no mesmo site que o webservice (asmx) está:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://*" />
<domain uri="https://*" />
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Note que nas linha 5 inicia uma relação dos sites que podem acessar o webservice em que este arquivo está hosteado. No exemplo acima estamos permitindo qualquer site de utilizar o nosso webservice, mas obviamente você irá montar sua própria lista.
Os dois eventos abaixo estão abertos para inscrição pela Microsoft, não deixem de comparecer !!!
segunda-feira, 27 de julho de 2009 9:00 - segunda-feira, 27 de julho de 2009 12:00 Brasília
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032422336&Culture=pt-BR
quarta-feira, 5 de agosto de 2009 19:00 - quarta-feira, 5 de agosto de 2009 22:00 Brasília
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032422335&Culture=pt-BR