Silverlight 2 Wysyłanie plików

0

Witam serdecznie.

Zwracam się z następującym problemem. Czy ktoś z was wie jak w Silverlight 2 napisać aplikację która potrafi wysłać plik wybrany przez użytkownika na serwer?

To znaczy:
Mamy stronę WWW na której na której znajduje się tekstbox oraz przycisk „Wyślij” oraz obiekt Image. Użytkownik odwiedzający tę stronę, podaje w textboxie lokalizację pliku znajdującego się na jego własnym Dysku (np. „c:\cytryna.jpg”) a następnie wciska przycisk „Wyślij”. Jeżeli podany plik istnieje, program wysyła go na serwer na którym sam się znajduje. Na koniec obrazek „cytryna.jpg” zostaje wyświetlony w obiekcie Image.

Właśnie uczę się Silverlighta. Przekopałem się przez sporo tutoriali i udało mi się zrobić przycisk tekst box i obiekt image na którym, po wciśnięciu buttona, wyświetla się obrazek zaczytany z serwera. Nie mam jednak pojęcia jak wysłać plik od klienta na serwer. Może ktoś z was robił już coś podobnego, ma gotowe rozwiązanie lub wie gdzie je znaleźć ?

Pozdrawiam równie serdecznie jak witam :-)

0

Zobacz na screencasty na tej stronie.

0

Wow. Muszę przyznać że strona jest naprawdę SUPER. Znalazłem tam wszystko co chciałem. Wielkie dzięki :-)

0

No i znowu się zaciąłem. Próbuję zrobić stronę w Sliverlight, która wykorzystywała by
webservice. Najpierw tworzę projekt w silverlight a potem dodaję website a do niej WCF service. Tworzę funkcję, dodaję Service reference do głównego projektu, i generalnie wszystko się kompiluje, jednak.

1). Zanim się skompiluje kompilator wyświetla: „This silverlight project you are about to debug is consuming web services. Calls to the web services will fail unless the project is excecuted in the context of the web wich contains the web service”

2). Kiedy odwołam się do funkcji w swoim web service program wywala się z następującym komunikatem:
„An error occurred while trying to make a request to URI 'http://localhost:3272/WebSite6/Service.svc'. This could be due to a cross domain configuration error. Please see the inner exception for more details. „

Tutaj zamieściłem spakowany projekt, gdyby ktoś chciał zajżeć do kodu:

http://neogaia.pl/asp/Testy_03.rar

Tu są detale błędu:

System.ServiceModel.CommunicationException was unhandled by user code
Message="An error occurred while trying to make a request to URI 'http://localhost:3272/WebSite6/Service.svc'. This could be due to a cross domain configuration error. Please see the inner exception for more details."
StackTrace:
at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
at System.ServiceModel.ClientBase1.ChannelBase1.EndInvoke(String methodName, Object[] args, IAsyncResult result)
at Testy_03.ServiceReference1.ServiceClient.ServiceClientChannel.EndSaveString(IAsyncResult result)
at Testy_03.ServiceReference1.ServiceClient.Testy_03.ServiceReference1.IService.EndSaveString(IAsyncResult result)
at Testy_03.ServiceReference1.ServiceClient.OnEndSaveString(IAsyncResult result)
at System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult result)
InnerException: System.Security.SecurityException
Message=""
StackTrace:
at System.Net.AsyncHelper.BeginOnUI(BeginMethod beginMethod, AsyncCallback callback, Object state)
at System.Net.BrowserHttpWebRequest.BeginGetResponse(AsyncCallback callback, Object state)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteSend(IAsyncResult result)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.OnSend(IAsyncResult result)
InnerException: System.Security.SecurityException
Message="[Arg_SecurityException]\r\nArguments:\r\nDebugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=2.0.30523.8&File=mscorlib.dll&Key=Arg_SecurityException"
StackTrace:
at MS.Internal.InternalWebRequest.Send()
at System.Net.BrowserHttpWebRequest.BeginGetResponseImplementation()
at System.Net.BrowserHttpWebRequest.InternalBeginGetResponse(AsyncCallback callback, Object state)
at System.Net.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>b__3(Object sendState)
InnerException:

Projekt robiłem w oparciu o tutorial ze strony: http://www.miketaulty.com/SLVideos.html
Wideo o nazwie: „Making calls to webservices”

0

Wygląda na to że przegryzłem się przez ten problem. Okazuje się że projekt nie może uruchamiać się z lokalnej ścieżki, powinien odpalać się jako http://localhost:XXXX ...... Tak aby część silverlightowa i webservice były w tej samej lokalizacji. W przeciwnym wypadku naruszona zostaje jakaś tam zasada bezpieczeństwa.
Mój błąd polegał na tym że zrobiłem projekt w Silverlight a dopiero do niego dodałem website a potem w website webservice. Aby wszystko działało poprawnie, należy Od razu stworzyć w Visual studio projekt silverlight z WCF Service.

Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1