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

 

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

Dynamic Web Reference μέσα από DLL

Îåêßíçóå áðü ôï ìÝëïò Firebrand. Τελευταία δημοσίευση από το μέλος Firebrand στις 04-11-2011, 12:03. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  03-11-2011, 13:52 68015

    Dynamic Web Reference μέσα από DLL

    Γεια χαρά σε όλους!

    Περνάω κατευθείαν στο ψητό.

    Έχω φτιάξει ένα web service το οποίο βρίσκεται σε συγκεκριμένη IP σε συγκεκριμένο server.
    Έχω φτιάξει ένα client dll το οποίο τρέχει μέσα από άλλο application και καλεί αυτό το web service.
    Το Web reference έχει ρυθμιστεί ως dynamic.

    Αν αλλάξω την IP μέσα από το web reference χωρίς να έχω αλλάξει την IP του server τότε πολύ απλά στο build του client μου κρατάει την παλιά IP (δεν αλλάζει καθώς στη νέα IP δεν βρίσκει το web service).
    Πως μπορώ να φτιάξω το client ώστε δυναμικά κατά το setup να του λέω χτύπα το τάδε ή το δίνα service.

    Δεν ζητάω κώδικα (ίσως λίγο κώδικα βοηθητικά). Περισσότερο θα ήθελα να μου εξηγήσει κάποιος τη λογική ή αν υπάρχει κάποιο work around.

    Έκανα την ίδια δουλειά με εκτελέσιμο (exe) και το dynamic δουλεύει αστέρι στο setup.

    Any help is more than welcome.
    Ευχαριστώ όλους εκ των προτέρων.

    ΥΓ. Γράφω σε VB.NET με VS 2008 Pro.
  •  03-11-2011, 20:13 68025 σε απάντηση της 68015

    Απ: Dynamic Web Reference μέσα από DLL

    Μπορείς να το ορίσεις στο App.Config / Web.Config του client σου. Google για "dynamic web service app.config", πρώτο ή δεύτερο link είναι η απάντησή σου. 
    Angel
    O:]
  •  03-11-2011, 20:28 68027 σε απάντηση της 68025

    Απ: Dynamic Web Reference μέσα από DLL

    anjelinio:
    Μπορείς να το ορίσεις στο App.Config / Web.Config του client σου. Google για "dynamic web service app.config", πρώτο ή δεύτερο link είναι η απάντησή σου. 


    Ευχαριστώ για τη βοήθεια αλλά το έχω δοκιμάσει και δεν παίζει.
    Στην προκειμένη περίπτωση λειτουργεί μόνο με exe και όχι με dll.
    Γι' αυτό άλλωστε ρωτάω αν υπάρχει κάποιο work around.

    Αν το δοκίμασες με κάποιο συγκεκριμένο τρόπο και σου δούλεψε τότε σε ακούω με πολύ προσοχή.

    Ευχαριστώ.
  •  04-11-2011, 11:47 68036 σε απάντηση της 68027

    Απ: Dynamic Web Reference μέσα από DLL

    Ναι ... μάλλον δεν το 'γραψα κι εγώ καλά. Εννοούσα στο App / Web.Config της εφαρμογής που χρησιμοποιεί το client DLL σου. 

    Π.χ. ... έχω εγώ ένα dll, ονόματι Wds.Uis.dll - Περιέχει μέσα ένα Web Service Reference, ορισμένο ως Dynamic. 

    Με το που  φτιάχνω το reference μέσα στο dll, αυτομάτως μου προσθέτει app.config στο dll project, το οποίο κάτω κάτω έχει το εξής:

      <applicationSettings>
            <Wds.Uis.Properties.Settings>
                <setting name="Newsphone_Wds_Uis_MppingService_MappingService"
                    serializeAs="String">
                    <value>http://<my service url here>.asmx</value>
                </setting>
            </Wds.Uis.Properties.Settings>
        </applicationSettings>

    Και μετά τα compile κτλ κτλ, παίρνω αυτό το dll και το χρησιμοποιώ σε ένα web site μου, αλλά θέλω άλλο web service url. Πάω λοιπόν στο web.config του site μου, και κάνω copy paste το snippet παραπάνω, αλλάζοντας το url μετά. Κι όλα μια χαρά. To σημαντικό και κοινό λάθος είναι το <Wds.Uis.Properties.Settings>, που δεν το βάζει ο κόσμος και δεν του δουλεύει.

    Καταλαβαίνω ότι μάλλον θα προτιμούσες όλα αυτά να γίνονταν "εσωτερικά", μόνο σε δικό σου κώδικα, οπότε το dll που δίνεις στον κάθε πελάτη έχει ήδη απο τη μάνα του μέσα το σωστό url κι ο πελάτης σου να μην ξέρει ποτέ τίποτα. Για κάτι τέτοιο μάλλον θα κοίταγα κάποιο custom build configuration στο VS, ή κάτι σε pre-post-build events, κάτι τέτοιο, δε φαίνεται να υπάρχει easy way out.

    Ελπίζω να βοήθησα φίλε, αν το βρείς τελικά, μοιράσου, είναι ενδιαφέρον πρόβλημα για service developers.

    Angel
    O:]
  •  04-11-2011, 12:03 68037 σε απάντηση της 68036

    Απ: Dynamic Web Reference μέσα από DLL

    anjelinio:
    Ναι ... μάλλον δεν το 'γραψα κι εγώ καλά. Εννοούσα στο App / Web.Config της εφαρμογής που χρησιμοποιεί το client DLL σου. 

    Π.χ. ... έχω εγώ ένα dll, ονόματι Wds.Uis.dll - Περιέχει μέσα ένα Web Service Reference, ορισμένο ως Dynamic. 

    Με το που  φτιάχνω το reference μέσα στο dll, αυτομάτως μου προσθέτει app.config στο dll project, το οποίο κάτω κάτω έχει το εξής:

      <applicationSettings>
            <Wds.Uis.Properties.Settings>
                <setting name="Newsphone_Wds_Uis_MppingService_MappingService"
                    serializeAs="String">
                    <value>http://<my service url here>.asmx</value>
                </setting>
            </Wds.Uis.Properties.Settings>
        </applicationSettings>

    Και μετά τα compile κτλ κτλ, παίρνω αυτό το dll και το χρησιμοποιώ σε ένα web site μου, αλλά θέλω άλλο web service url. Πάω λοιπόν στο web.config του site μου, και κάνω copy paste το snippet παραπάνω, αλλάζοντας το url μετά. Κι όλα μια χαρά. To σημαντικό και κοινό λάθος είναι το <Wds.Uis.Properties.Settings>, που δεν το βάζει ο κόσμος και δεν του δουλεύει.

    Καταλαβαίνω ότι μάλλον θα προτιμούσες όλα αυτά να γίνονταν "εσωτερικά", μόνο σε δικό σου κώδικα, οπότε το dll που δίνεις στον κάθε πελάτη έχει ήδη απο τη μάνα του μέσα το σωστό url κι ο πελάτης σου να μην ξέρει ποτέ τίποτα. Για κάτι τέτοιο μάλλον θα κοίταγα κάποιο custom build configuration στο VS, ή κάτι σε pre-post-build events, κάτι τέτοιο, δε φαίνεται να υπάρχει easy way out.

    Ελπίζω να βοήθησα φίλε, αν το βρείς τελικά, μοιράσου, είναι ενδιαφέρον πρόβλημα για service developers.


    Ευχαριστώ πολύ.
    Όντως το Wds.Uis.Properties.Settings λείπει.
    Θα το δοκιμάσω και θα σου πω.
    Thx.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems