Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Υπάρχει τρόπος να κάnω Late Binding ένα WebService?

Îåêßíçóå áðü ôï ìÝëïò plavidas. Τελευταία δημοσίευση από το μέλος plavidas στις 01-06-2005, 15:47. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  16-05-2005, 13:09 2000

    No [N] Υπάρχει τρόπος να κάnω Late Binding ένα WebService?

    ίσως οι guru του forum να έχουν να μου δώσουν κάποιες πληροφορίες για να κάνω Late Binding ένα web Service απο μία Windows φόρμα και VS2003 με framework 1.1

    Έχω πρόβλημα με τα 2000 και δεν μπορώ να κάνω add Web reference γιατί βγάζει συνέχεια το εξής λάθος:

    There was an error downloading

    'http://192.168.0.45/MyTest/Service1.asmx'.

    The operation has timed-out.

    Θα ήθελα λύση αν υπάρχει και για τα δύο... [+o(]


  • ευχαριστω....
  • [<:o)]


    Παναγιώτης Λαβίδας
    Software Developer
  •  16-05-2005, 14:25 2003 σε απάντηση της 2000

    Re: Υπάρχει τρόπος να κάnω Late Binding ένα WebService?

    Το αγαπητό Google οδηγεί στο άρθρο 815209 του Knowledge Base:

    BUG: You receive a "The operation has timed-out" error message when you access a Web service or when you use the IPAddress class

    Το πρόβλημα εμφανίζεται σε υπολογιστές με >50 network protocol bindings.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  16-05-2005, 14:36 2004 σε απάντηση της 2000

    Re: Υπάρχει τρόπος να κάnω Late Binding ένα WebService?

    Και περί "late binding". Τί εννοείς "late binding"? Να συνδεθείς σε διαφορετικό server από αυτόν στον οποίο ήταν ορισμένο το web reference ή να συνδεθείς σε κάποιο web service για το οποίο δεν έχεις το WSDL όταν κάνεις compile?

    Αν θέλεις να συνδεθείς σε άλλο server, απλά πέρνα το URL του στο Url property του Web Service όπως παρακάτω:

    myService.Url = "http://www.contoso.com/math.asmx";

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  17-05-2005, 10:14 2011 σε απάντηση της 2000

    Yes [Y] Re: Υπάρχει τρόπος να κάnω Late Binding ένα WebService?

    Το αρθράκι της microsoft ειναι μια μπιπ... Το είχα διαβάσει παλιότερα αλλά όλα τα Networks είναι αυτά και μόνο αυτά που πρέπει... Microsoft και πάλι Microsoft... Devil Φοβάμαι ότι το πρόβλημα που έχω με το να κάνω Add Web Reference είναι πρόβλημα στην εγκατάσταση του λειτουργικού... και αυτό το λέω γιατί σε VirtualPC
    και εγκατάσταση XP sp1 δεν έχω κανένα πρόβλημα

    όσο για το άλλο με κάλυψες πλήρως...
    Ευχαριστώ... [<:o)]

    Παναγιώτης Λαβίδας


    Παναγιώτης Λαβίδας
    Software Developer
  •  17-05-2005, 14:39 2013 σε απάντηση της 2011

    Re: Υπάρχει τρόπος να κάnω Late Binding ένα WebService?

    Το service παίζει όταν το χτυπάς από τον IE ?
    Χρήστος Γεωργακόπουλος
  •  17-05-2005, 23:31 2021 σε απάντηση της 2013

    Re: Υπάρχει τρόπος να κάnω Late Binding ένα WebService?

    Το ότι το πρόβλημα έχει να κάνει με το λειτουργικό φαίνεται και από το άρθρο. Όσο για την ποιότητά του, αυτή δεν μειώνεται επειδή δεν καλύπτει ακριβώς την περίπτωσή σου. Κάποιοι βρήκανε το ίδιο πρόβλημα και έκατσαν και το έψαξαν μέχρι που βρήκαν που οφείλεται. Και πρέπει να έψαξαν πάρα πολύ για να καταλήξουν ότι το πρόβλημα δεν είχε να κάνει με το ίδιο το web service αλλά με τις κάρτες δικτύου. Η πρώτη εντύπωση που δίνει ένα timeout είναι ότι το ίδιο το web service έχει πρόβλημα. Κι εγώ αν δεν έβρισκα αυτό το άρθρο θα σου απαντούσα ότι απλά έχει πρόβλημα το service σου. Δοκίμασα πάντως να φτιάξω ένα service που κάνει timeout και το μήνυμα λάθους ήταν διαφορετικό.

    Μην απορρίπτεις πάντως έτσι εύκολα όσα λέει το άρθρο. Αν π.χ. έχεις και Virtual PC στο ίδιο μηχάνημα, έχεις μερικές έξτρα virtual κάρτες δικτύου, μαζί με τα δικά τους bindings. Ή μπορεί κάποιο desktop firewall ή άλλο utility να προκαλεί την καθυστέρηση. Το γεγονός ότι σε Virtual PC παίζει δείχνει ότι κάτι δεν πάει καλά με το μηχάνημα στο οποίο τρέχει. Δοκίμασε τουλάχιστον να σταματήσεις τα services του Virtual PC και να απενεργοποιήσεις τις κάρτες του πριν δοκιμάσεις μια νέα σύνδεση.

    Για να ψάξεις παραπέρα κοίτα το event log και το log του IIS μήπως περιέχουν κάποιο διαφωτιστικό μήνυμα.
    Επίσης, μπορείς να χρησιμοποιήσεις και το DbgView της Sysinternals. Είναι ένα δωρεάν πρόγραμμα που πιάνει το debug output τόσο των εφαρμογών όσο και των driver. Πιάνει το output των εντολών OutputDebugString, DbgPrint και του default trace listener. Τα μηνύματα που πιάνει είναι τα trace μηνύματα που γράφει ο κάθε προγραμματιστής, οπότε μπορεί να βρεις εκεί περισσότερη πληροφορία απ' ότι περιέχει ένα μήνυμα λάθους.
    Άλλο χρήσιμο εργαλείο είναι το TCPView. Σου δείχνει τις ανοικτές συνδέσεις στο σύστημά σου και τις ανανεώνει ανά δευτερόλεπτο. Με αυτό θα μπορέσεις να ελέγξεις ότι η κλήση του web service γίνεται σωστά.
    Τέλος, υπάρχει και το TDIMon πάλι της Sysinternals. Αυτό σου δείχνει σε πραγματικό χρόνο τις κλήσεις που γίνονται στα protocol stacks. Ίσως έτσι να μπορέσεις να δεις αν οι κλήσεις του web service προχωράνε σωστά ή αν γίνονται περίεργες κλήσεις, ίσως συνδέσεις σε κάποια εικονική κάρτα.

    Ρίξε μια ματιά και σε αυτό το post: http://dotnet247.com/247reference/msgs/48/244444.aspx. Κάποιος με το ίδιο πρόβλημα δοκίμασε να τρέξει το disco.exe και πήρε μήνυμα λάθους ότι δεν μπορούσε να δημιουργηθεί socket. Δοκίμασε το ίδιο. Αν και εσύ πάρεις κάποιο παρόμοιο μήνυμα, θα ξέρεις τουλάχιστον ότι το πρόβλημα είναι όντως πρόβλημα δικτύου.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  18-05-2005, 00:41 2027 σε απάντηση της 2021

    Smile [:)] Re: Υπάρχει τρόπος να κάnω Late Binding ένα WebService?

    Τώρα που το σκέφτομαι, έχω ένα παρόμοιο πρόβλημα (προβλήματα με το add web reference) για το οποίο έχω ένα workaround και έχω μάθει να ζώ μαζί του. Το workaround είναι το εξής:

    1. Ανοίγεις Task manager και σκοτώνεις το service του aspnet.
    2. Περιμένεις 4-5 δευτερόλεπτα και το ξανασκοτώνεις.
    3. Περιμένεις 4-5 δευτερόλεπτα και κάνεις add web reference

    Στα δύο σκοτώματα το aspnet επανέρχεται με μερικά bytes διαφορά στο memory usage παρόλο που περίμενα να μένει το ίδιο, but μετά τα προβλήματα εξαφανίζονται. Δουλεύει 9/10 φορές. Αν το σκοτώσεις μόνο μια φορά δεν πιάνει.

    Αν δεν βρίσκεις τίποτα άλλο, δοκίμασέ το και αυτό... είναι από τα βουντού της υπόθεσης... (you know, κουκλάκι του bill gates, του πατάς δυο καρφίτσες στο κεφάλι, λες ξου ξου ξου, και μετά δουλεύουν όλα... :-)

    PS. Το κόλπο επίσης δεν πιάνει αν το κάνεις προκαταβολικά. Πρέπει να χτυπήσει πρώτα.

    Χρήστος Γεωργακόπουλος
  •  01-06-2005, 15:47 2379 σε απάντηση της 2000

    Re: Υπάρχει τρόπος να κάnω Late Binding ένα WebService?

    Μετά από όλες τις πιθανές λύσεις που μου πρότειναι ο Χρήστος, κατάφερα και κατέληξα στα παρακάτω (χίλια ευχαριστώ σε όλους)...
    Ενώ έκανα ότι ακριβώς μου είπε δεν μπόρεσα να καταφέρω με κανένα τρόπο να κάνω Add ένα webService (πάντα είχα το πρόβλημα του Timed Out...)

    Μετά από όλα αυτά, άνοιξα κάποιο case με τη Microsoft για το πρόβλημα, και καταλήξαμε στο εξής συμπέρασμα... 
       Λόγω του ότι το μηχάνημα μου είχε προεγκατεστημένο Λειτουργικό 2000 με κάποιους default drivers, δούλευε κανονικά για όλα τα υπολοιπα προγράμματα αλλά όχι για το VS2003 και συγκεκριμένα για τα webServices λόγω του ότι το VS2003 κάνει κάποιους ελέγχους πάνω στις ρυθμίσεις του TCP/IP που δεν χρειάζονται στη δημιουργία κάποιας ASP.net σελίδας...

    Το συμπέρασμα που βγάλαμε είναι ότι έπρεπε να ξανακάνω εγκατάσταση το Λειτουργικό απο το CD του και ΟΧΙ απο το Image που είχα προμηθευτεί...

    Τα βήματα που ακολούθησα ένα προς ένα...
    1. Εγκατάσταση των Windows 2000 Professional (Καλά είμαι και ο πρώτος...Yes)
    2. Εγκατάσταση όλων των τελευταίων drivers του υπολογιστή μου...
    3. Εγκατάσταση του IIS...
    4. Εγκατάσταση του VS2003
    5. Εγκατάσταση του .Νet Framework 1.1 SP1
    6. Εγκατάσταση του MSDN

    και βουαλά μετα απο 5-6 Beer ... όλα παίζουν άψογα...

    Δυστυχώς δεν κατάφερα να αποφύγω την παραπάνω διαδικασία...

    πάντως μέγάλη βοήθεια είχα και από τον Ζαχαρία Δεντοφτιάχνω.. Σε ευχαριστώ Ζαχαρία... πάντα έτσι να βοηθάς τους συνανθρώπους σου...( Big Smile )

    Παναγιώτης Λαβίδας
    Software Developer


    Παναγιώτης Λαβίδας
    Software Developer
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems