View Full Version : Primi passi con webservice c#
Abdujaparov
19-10-2006, 00:01
Salve a tutti sto cercando di scrivere un piccolo client che si connetta ad un webservice. Ho il wsdl del servizio a cui connettermi però non so come farmi generare le classi proxy in c# con visual studio 2005.
Io ho creato una nuova applicazione (per adesso solo console, per provare poi passo all'interfaccia grafica).
Come posso far generare le classi da utilizzare nel mio progetto per invocare i metodi remoti? (sto cercando di utilizzare il servizio di ricerca che mette a disposizione google con il suo webservice, lo faccio come esercizio per iniziare).
Grazie, ciao ciao.
mattia.pascal
19-10-2006, 09:47
Basta seguire la procedure guidata che ti fornisce VisualStudio. Devi aggiungere al progetto un webreference. Si aprirà una finestra di dialogo in cui selezionerai il webservice. Per altri dettagli consulta MSDN.
Abdujaparov
19-10-2006, 13:38
In quel modo mi compare una schermata strana che non mi consente in nessun modo di cercare il file wsdl sull'hd.
Sono riuscito a generare il file .cs dal wsdl lanciando l'exe wsdl.exe, ho importato nel progetto il file che mi è stato generato (non l'ho ancora incluso nel main, l'ho solo importato nel progetto ora è lì senza che abbia toccato una virgola) ma se provo a compilare mi saltano fuori errori in quel file che non riesco a capire, dato che è stato prodotto in automatico:
------ Build started: Project: ConsoleApplication1, Configuration: Debug Any CPU ------
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Csc.exe /noconfig /nowarn:1701,1702 /errorreport:prompt /warn:4 /define:DEBUG;TRACE /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /debug+ /debug:full /optimize- /out:obj\Debug\ConsoleApplication1.exe /target:exe GoogleSearch.cs Program.cs Properties\AssemblyInfo.cs
C:\Documents and Settings\angelo\Documenti\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\GoogleSearch.cs(14,18): error CS0234: The type or namespace name 'Services' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
C:\Documents and Settings\angelo\Documenti\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\GoogleSearch.cs(15,18): error CS0234: The type or namespace name 'Services' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
C:\Documents and Settings\angelo\Documenti\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\GoogleSearch.cs(29,55): error CS0234: The type or namespace name 'Services' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
C:\Documents and Settings\angelo\Documenti\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\GoogleSearch.cs(52,17): error CS0234: The type or namespace name 'Services' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
C:\Documents and Settings\angelo\Documenti\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\GoogleSearch.cs(97,17): error CS0234: The type or namespace name 'Services' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
C:\Documents and Settings\angelo\Documenti\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\GoogleSearch.cs(142,17): error CS0234: The type or namespace name 'Services' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
C:\Documents and Settings\angelo\Documenti\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\GoogleSearch.cs(27,13): error CS0234: The type or namespace name 'Services' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
Compile complete -- 7 errors, 0 warnings
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
A cosa sono dovuti?
Cosa devo fare?
Il programma per la creazione del wsdl mi da questo output:
C:\Programmi\Microsoft Visual Studio 8\VC>wsdl /out:c:\apig\GoogleSearch.cs c:\a
pig\GoogleSearch.wsdl
Microsoft (R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.
Warning: This web reference does not conform to WS-I Basic Profile v1.1.
R2706: A wsdl:binding in a DESCRIPTION MUST use the value of "literal" for the u
se attribute in all soapbind:body, soapbind:fault, soapbind:header and soapbind:
headerfault elements.
- Input element soapbind:body of operation 'doGetCachedPage' on portType 'Goo
gleSearchBinding' from namespace 'urn:GoogleSearch'.
- Output element soapbind:body of operation 'doGetCachedPage' on portType 'Go
ogleSearchBinding' from namespace 'urn:GoogleSearch'.
- Input element soapbind:body of operation 'doSpellingSuggestion' on portType
'GoogleSearchBinding' from namespace 'urn:GoogleSearch'.
- Output element soapbind:body of operation 'doSpellingSuggestion' on portTyp
e 'GoogleSearchBinding' from namespace 'urn:GoogleSearch'.
- Input element soapbind:body of operation 'doGoogleSearch' on portType 'Goog
leSearchBinding' from namespace 'urn:GoogleSearch'.
- Output element soapbind:body of operation 'doGoogleSearch' on portType 'Goo
gleSearchBinding' from namespace 'urn:GoogleSearch'.
For more details on the WS-I Basic Profile v1.1, see the specification
at http://www.ws-i.org/Profiles/BasicProfile-1.1.html.
Writing file 'c:\apig\GoogleSearch.cs'.
Grazie, ciao ciao.
mattia.pascal
19-10-2006, 14:59
Senza il codice non ti posso aiutare molto, comunque ti assicuro che la procedura è semplicissima. Cerca su google qualche tutorial. Ti consiglio il sito codeproject.com.
Abdujaparov
20-10-2006, 09:05
Alla fine sono riuscito a risolvere. Ho fatto add reference service ed ho scritto a mano il percorso del file wsdl es:
c:\pippo\Disney.wsdl poi ha fatto tutto lui.
Il problema era che nell'interfaccia che spunta, dopo add web reference, compare una specie di browser con sotto una specie di pagina di dimensioni microscopiche (forse dipende solo dalla mia risoluzione ma non riuscivo a leggere neanche con la lente di ingrandimento). Alla fine per prova ho inserito l'indirizzo a mano e tutto è andato per il meglio.
Sicuramente quando compilavo manualmente dovevo inserire qualche parametro a me sconociuto.
Grazie a tutti, ciao ciao.
Abdujaparov
20-10-2006, 15:15
Una curiosità, ma è possibile creare un servizio per windows (l'equivalente dei demoni linux non mi riferisco a web service) in C#?
Se si dove posso trovare una guida?
Grazie, ciao ciao
Una curiosità, ma è possibile creare un servizio per windows (l'equivalente dei demoni linux non mi riferisco a web service) in C#?
Se si dove posso trovare una guida?
Grazie, ciao ciao
Perché non si dovrebbe poter fare? ;) Certo, avresti un demone che si appoggia al framework .NET...
Una volta fatto, lo devi installare come servizio in windows.
Abdujaparov
20-10-2006, 18:14
Sai dove posso trovare una guida?
Grazie, ciao ciao.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.