DeMue Geschrieben 12. Januar 2009 Geschrieben 12. Januar 2009 Hallo zusammen, ich versuche mit C# auf einen Webservice zuzugreifen und möchte diesem dann einige Parameter übergeben (Username, ID usw.) Hat jemand ein gutes Tutorial oder kann mir anhand eines Beispiels erklären wie das geht? Komme mit den Beispielen, die mir google bietet nicht wirklich klar. Danke! Viele Grüße DeMue Zitieren
Guybrush Threepwood Geschrieben 12. Januar 2009 Geschrieben 12. Januar 2009 Du musst deinem Programm eine WebReferenz hinzufügen, dann kannst du darüber einfach auf den Webservice zugreifen... Zitieren
DeMue Geschrieben 12. Januar 2009 Autor Geschrieben 12. Januar 2009 Hi, danke! Hat funktioniert, wie einfach es doch manchmal sein kann. :floet: Viele Grüße DeMue Zitieren
DeMue Geschrieben 13. Januar 2009 Autor Geschrieben 13. Januar 2009 Ich hab dann noch eine zweite Frage. Wenn ich nun auf einen Webservice zugreifen möchte, der den Flash Player voraussetzt, sagt mir Visual Studio, dass er nicht installiert ist. Der Flash Player ist jedoch installiert. Versuche ich den Flash Player nun direkt in dem Fenster, wo man die WebReferenz hinzufügt zu installieren, geht es nicht wegen den Sicherheitseinstellungen, die im Browser (IE) jedoch freigegeben sind. Wo kann ich die Sicherheitseinstellungen (im Visual Studio?) runtersetzen um den Flash Player installieren zu können? Wie gesagt im Internet Explorer funktioniert alles einwandfrei... Zitieren
Guybrush Threepwood Geschrieben 13. Januar 2009 Geschrieben 13. Januar 2009 Öhm was meinst du mit "WebService der den FlashPlayer vorraussetzt"? Ein Webservice liefert dir ja nur irgendwelche Daten. Wenn das jetzt ein Flash Stream sein sollte dann müsstest du doch ein entsprechendes Control auf deiner Form haben welches du mit dem Stream fütterst, oder die Daten in einer Datei auf der Festplatte speichern oder nicht? Zitieren
DeMue Geschrieben 13. Januar 2009 Autor Geschrieben 13. Januar 2009 Hi, das Problem mit dem Flash hat sich mittlerweile erledigt, hatte den falschen Port angegeben und Visual Studio wollte deshalb immer den Flash Player haben. So nun habe ich die WebReferenzen eingebunden und möchte an die WebServices mehrere Parameter übergeben. Bsp.: Dem WebService RoomService möchte ich den Raumnamen übergeben, dem UserService möchte ich einige UserNamen + Passwort übergeben. Wie macht man sowas? Sorry für die ganzen Fragen, aber mein Ausbilder hat keine Ahnung davon und nach 1 Tag Googlen habe ich langsam aufgegeben ein gutes Tutorial oder eine andere Hilfestellung zu finden. Habe zwar einige Bücher hier liegen, aber in keinem wird etwas über Webservices beschrieben, wie ich es brauche... Ich habe dann noch eine Frage: Es erscheint bei mir immer folgende Warnung wenn Outlook nach dem debuggen des Projektes startet: Die Datei oder Assembly Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden. ************** Exception Text ************** System.IO.FileNotFoundException: Die Datei oder Assembly Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden. Dateiname: Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c bei OutlookAddIn1.ThisAddIn.Initialize() bei Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.CreateStartupObject(EntryPoint entryPoint, Dependency dependency, Assembly objectAssembly) bei Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.ConfigureAppDomain() bei Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.LoadAssembliesAndConfigureAppDomain(IHostServiceProvider serviceProvider) bei Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.LoadEntryPointsHelper(IHostServiceProvider serviceProvider) === Zustandsinformationen vor Bindung === LOG: Benutzer = LAN-04\muellerd LOG: DisplayName = Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c (Fully-specified) LOG: Appbase = file:///C:/Programme/Microsoft Visual Studio/Projekts/OutlookAddIn1/OutlookAddIn1/bin/Debug/ LOG: Ursprünglicher PrivatePath = NULL Aufruf von Assembly : OutlookAddIn1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. === LOG: Diese Bindung startet im default-Load-Kontext. LOG: Es wurde keine Anwendungskonfigurationsdatei gefunden. LOG: Die Computerkonfigurationsdatei von C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config wird verwendet. LOG: Verweis nach der Richtlinie: Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c LOG: Download von neuem URL file:///C:/Programme/Microsoft Visual Studio/Projekts/OutlookAddIn1/OutlookAddIn1/bin/Debug/Microsoft.Office.Interop.Outlook.DLL. LOG: Download von neuem URL file:///C:/Programme/Microsoft Visual Studio/Projekts/OutlookAddIn1/OutlookAddIn1/bin/Debug/Microsoft.Office.Interop.Outlook/Microsoft.Office.Interop.Outlook.DLL. LOG: Download von neuem URL file:///C:/Programme/Microsoft Visual Studio/Projekts/OutlookAddIn1/OutlookAddIn1/bin/Debug/Microsoft.Office.Interop.Outlook.EXE. LOG: Download von neuem URL file:///C:/Programme/Microsoft Visual Studio/Projekts/OutlookAddIn1/OutlookAddIn1/bin/Debug/Microsoft.Office.Interop.Outlook/Microsoft.Office.Interop.Outlook.EXE. ************** Loaded Assemblies ************** mscorlib Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400) CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll ---------------------------------------- Microsoft.VisualStudio.Tools.Applications.Runtime Assembly Version: 8.0.0.0 Win32 Version: 8.0.50727.940 CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualStudio.Tools.Applications.Runtime/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.Tools.Applications.Runtime.dll ---------------------------------------- Microsoft.Office.Tools.Common Assembly Version: 8.0.0.0 Win32 Version: 8.0.50727.940 CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.Office.Tools.Common/8.0.0.0__b03f5f7f11d50a3a/Microsoft.Office.Tools.Common.dll ---------------------------------------- System Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400) CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Windows.Forms Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400) CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- OutlookAddIn1 Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/Programme/Microsoft%20Visual%20Studio/Projekts/OutlookAddIn1/OutlookAddIn1/bin/Debug/OutlookAddIn1.DLL ---------------------------------------- Zitieren
Guybrush Threepwood Geschrieben 13. Januar 2009 Geschrieben 13. Januar 2009 Bsp.: Dem WebService RoomService möchte ich den Raumnamen übergeben, dem UserService möchte ich einige UserNamen + Passwort übergeben. Wie macht man sowas? Wenn du den Webservice in deinem Programm referenziert hast kannst du die Funktionen daraus doch ganz normal aufrufen und da übergibst du dann halt einfach die gewünschten Parameter mit. Ich hab hier mal ein Beispiel um über den Amazon Webservice ein Album Cover zu einem Lied runterzuladen: using (WebClient WebClient = new WebClient()) { KeywordRequest req = new KeywordRequest(); req.keyword = Artist + " " + Album; req.devtag = "XXX"; req.mode = "music"; req.type = "lite"; req.page = "1"; using (AmazonSearchService search = new AmazonSearchService()) { int i = 0; try { ProductInfo productInfo = search.KeywordSearchRequest(req); for (; i < productInfo.Details.Length; ++i ) { string Url = productInfo.Details[i].ImageUrlLarge; //Download Image } return i; } catch (Exception ex) { } } } [/PHP] Zitieren
DeMue Geschrieben 18. Januar 2009 Autor Geschrieben 18. Januar 2009 (bearbeitet) Habe mich mal ein wenig weiter eingelesen in WebServices, es funktioniert nun schon ganz gut. Die SID bekomme ich ohne Probleme wieder, allerdings habe ich Probleme mit der Methode AddRoom: Die Doku dazu: SoapMethods - openmeetings - Available SOAP-Services to login directly/embedding OpenMeetings - Google Code Fehlermeldung: Die Methode nimmt keine 20 Überladungen an... Danach habe ich mal ein wenig gegoogelt und hier PHP Code dazu gefunden: http://openmeetings.googlecode.com/svn/trunk/plugins/openmeetings_moodleplugin/openmeetings/openmeetings_gateway.php Danach habe ich versucht die gleichen Parameter, wie im Beispiel dort übergeben werden, zu übergeben, aber es erscheint immernoch die gleiche Fehlermeldung. Kann mir einer helfen und mir sagen was ich falsch mache? Danke und viele Grüße DeMue //declare new UserService(us) and new RoomService (rs) var us = new UserService(); var rs = new RoomService(); //get SessionID var sessionResponse = us.getSession(); var sessionId = sessionResponse; SID = sessionId.@return.session_id; Console.WriteLine(SID); //login User us.loginUser(SID, "LoginName", "Passwort", out long2, out bool2); //setUserObject us.setUserObject(SID, EmailToSplit, SplittetMailToSplitFirstName, SplittetMailToSplitSureName, "http://wiki/skins/common/logo/logo.png", emailadress , out long3, out bool3); //addRoom to Open Meetings rs.addRoom(SID, "testname", 1, 4, true, 270, 280, 2, 2, 400, true, 276, 2, 592, 660, true, 2, 284, 310, 270,); //set userObject // You need it for each login us.setUserObject(SID, EmailToSplit, SplittetMailToSplitFirstName, SplittetMailToSplitSureName); //Room1 ID Rooms Room = rs.getRoomById(SID, RoomID, true); //Write SID and Room ID KnownRoomID = (long)Room.rooms_id.Value; Bearbeitet 18. Januar 2009 von DeMue Zitieren
Klotzkopp Geschrieben 18. Januar 2009 Geschrieben 18. Januar 2009 Fehlermeldung: Die Methode nimmt keine 20 Überladungen an... So lautet die Fehlermeldung bestimmt nicht. Ein wenig mehr Sorgfalt wäre hier angebracht. Die Methode hat 21 Parameter. Du gibst nur 20 an, der comment-Parameter, ein String, fehlt. Das zusätzliche Komma am Ende ist auch nicht in Ordnung. Zitieren
DeMue Geschrieben 18. Januar 2009 Autor Geschrieben 18. Januar 2009 Oh danke, ich dachte das Comment wäre nur ein Kommentar. :upps Zitieren
DeMue Geschrieben 18. Januar 2009 Autor Geschrieben 18. Januar 2009 rs.addRoom(SID, TopicBox.Text , 1, "Added by Open Meeting Tools for Outlook" ,4, true, 270, 280, 2, 2, 400, true, 276, 2, 592, 660, true, 2, 284, 310, 270) Schade, auch mit 21 gehts nicht. Die Methode nimmt auch keine 21 Überladungen an.. Zitieren
Klotzkopp Geschrieben 18. Januar 2009 Geschrieben 18. Januar 2009 Die Methode nimmt auch keine 21 Überladungen an..Schreib doch bitte, wie die Fehlermeldung wirklich lautet. Zitieren
DeMue Geschrieben 18. Januar 2009 Autor Geschrieben 18. Januar 2009 Error 14 No overload for method 'addRoom' takes '21' arguments Sorry. Zitieren
LordHexa Geschrieben 20. Januar 2009 Geschrieben 20. Januar 2009 (bearbeitet) Hi DeMue Nun ich tippe ganz einfach mal, das addRoom() einfach nur einen Array als Parameter besitzt. Zumindest geht das aus dem PHP-Code hervor, den du oben verlinkt hast. Greetz Bearbeitet 20. Januar 2009 von LordHexa Kleiner Nachtrag Zitieren
DeMue Geschrieben 20. Januar 2009 Autor Geschrieben 20. Januar 2009 Falls jemand nochmal vor dem Problem stehen sollte, auch wenn ich nicht weiß woher die ganzen restlichen Parameter kommen, aber so funktioniert es: Reihenfolge wie im PHP Beispiel, das einzige 'False' steht hier um den Room auf Private zu setzen: rs.addRoom(SID, RoomName, 1, true, "Added by Open Meeting Tools for Outlook", 16, true, false ,true, 270, true, 280, true, 2, true, 2, true, 400, true, true, true, 276, true, 2, true, 592, true, 660, true, true,true, 2, true, 284, true, 310, true, 270, true, out long4, out bool4); Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.