Αρχεία κατηγοριών: Ανάπτυξη του SharePoint

Μπαμπού ημερολόγιο αλληλεπιδρά με το SharePoint προκαλεί "ένα μη αναμενόμενο σφάλμα παρουσιάστηκε"

Σήμερα, Έχω εργαστεί σε ένα περιβάλλον που χρησιμοποιεί ένα τμήμα web ημερολόγιο μπαμπού για κάποια βελτιωμένη συνεργασία. Αυτό είναι μια τυπική μέση/μικρή φάρμα με δύο ισοσταθμίζονται ως προς φορτίο WFEs, ένα "εφαρμογή διακομιστή" για τη δημιουργία ευρετηρίου και το InfoPath και ένα σύμπλεγμα SQL πίσω τέλος.

Το πρόγραμμα-πελάτη εγκατεστημένο κάποιο λογισμικό αποκατάστασης καταστροφών επάνω σε ένα από τα WFEs και που είχε ως αποτέλεσμα ένα σπασμένο ΙΟΙ για μια συγκεκριμένη τοποθεσία της συλλογής τοποθεσιών. Κάθε φορά που εξισορρόπηση φόρτου στραμμένο προς τις πληγείσες ΙΟΙ και ότι η ιστοσελίδα, Οι χρήστες είδαν μια σε μεγάλο βαθμό κενό λευκή οθόνη με την φράση "Παρουσιάστηκε ένα μη αναμενόμενο σφάλμα". Δεν υπάρχει άλλη πληροφορίες που έδειξε, ακριβώς αυτή η φράση.

Μου ζήτησαν να το δει κανείς. Αναπαράγεται εύκολα το πρόβλημα και να προστεθεί στη συνέχεια μια ?περιεχόμενα = 1 στο τέλος της διεύθυνσης URL. Αυτό είναι το πώς έμαθα που χρησιμοποιούσαν το τμήμα web μπαμπού. Πήγα πίσω στην σελίδα και τώρα, ξαφνικά, μου έδειξε ένα ωραίο ομαλή σφάλμα μήνυμα:

image

Δεν ξέρω τι συμβαίνει, ή ό, τι έκανα για να πάρει το μήνυμα λάθους ελεγχόμενη εμφανίζω εκτός από την προσάρτηση της ?περιεχόμενα = 1 το κομμάτι της συμβολοσειράς ερωτήματος.

Αυτό είναι πιθανώς μια άκρη πολύ σπάνια περίπτωση αλλά αν μπορείτε να πάρετε αυτό το μήνυμα, "Παρουσιάστηκε ένα μη αναμενόμενο σφάλμα" προχωρήστε και προσθέστε ?περιεχόμενα = 1 στη συμβολοσειρά ερωτήματος και να δούμε πού οδηγεί.

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Χρήση ανακλαστήρα για Microsoft.SharePoint.dll

Redgate .NET Reflector Michael Blumenthal έχει βάλει επάνω μια άρθρο σχετικά με τις ειδοποιήσεις και θέα («Ποιες προβολές μπορούν να χρησιμοποιηθούν κατά τη δημιουργία μια προειδοποίηση ?"), ενδιαφέροντα αυτοδυναμία. Ωστόσο, Ακόμη πιο ενδιαφέρον να δούμε πώς μεθοδικά περπατά μέσω της διαδικασίας της χρήσης του Redgate .NET ανακλαστήρα. Βήμα-βήμα, αυτός δείχνει πώς να χρησιμοποιήσετε αυτό το εργαλείο δρόμο κάτω πώς SharePoint καθορίζει αν μια άποψη σχετικά με μια λίστα πρέπει να είναι "subscribable" ελλείψει μιας καλύτερης λέξης (he explains this much better than I do 🙂 ).

Σε αυτό το σημείο στην εποχή του SharePoint, θα πρέπει σχεδόν να είναι κουφός και τυφλός να δεν έχετε ακούσει ή διαβάσει σχετικά με τη χρήση των εν λόγω εργαλείο. Έχει προχωρήσει τα πράγματα και η δική μου αίσθηση είναι ότι είναι εν πολλοίς ένα εργαλείο έσχατης ανάγκης. Ωστόσο, Αν νομίζετε ότι χρειάζεστε, αλλά πραγματικά δεν ξέρω πώς, Του Μιχαήλ write-up φαίνεται σαν ένα μεγάλο φροντιστήριο για το θέμα αυτό.

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Διαλογής στοιχεία ημερολογίου σε προβολή "Ημερολόγιο"

Είμαι χρησιμοποιώντας ένα ημερολόγιο για να παρακολουθείτε τις συζητήσεις σε μια δεδομένη ημέρα. Έχω δύο συνεδρίες: πρωί και απόγευμα. Θέλω να δημιουργήσω μια προβολή που εμφανίζει το πρωί συνεδρίες μόνο κατά αλφαβητική σειρά μέσω ένα αναγνωριστικό περιόδου λειτουργίας. Αυτό είναι λίγο δύσκολο να επιτευχθεί (εκτός αν έχασα κάτι πραγματικά προφανές).

Εύκολα μπορώ να δημιουργήσω μια φιλτραρισμένη προβολή δείχνει ακριβώς εκείνη την ημέρα εκδηλώσεις. Το ημερολόγιο θα δείξει όλα αυτά τα γεγονότα και αν όλα πραγματοποιούνται την ίδια ώρα, απαριθμεί τους δίπλα-δίπλα στην υποδοχή ώρα. Αυτό είναι υπέροχο. Το δύσκολο μέρος είναι ότι, από προεπιλογή, θέλει να τις παραθέσετε σε μορφή ID. Έτσι, αν μπορώ να προσθέσω "συνεδρίαση 02" και τότε "συνεδρία 01" στο ημερολόγιο, δείχνει τους με αυτή τη σειρά (ήτοι, Συνεδρία 02 και στη συνέχεια της συνόδου 01). Να απαριθμήσω για αναγνωριστικό περιόδου λειτουργίας, Σκέφτηκα να προσπαθήσω αυτά τα πράγματα:

  1. Ρυθμίσετε την προβολή, χρησιμοποιώντας το περιβάλλον εργασίας χρήστη web. Καμία τύχη. Δεν υπάρχουν επιλογές για να ταξινομήσετε στοιχεία με τον τρόπο αυτό.

    Δεδομένου ότι δεν λειτούργησε, Είμαι τώρα ελπίζοντας εκεί είναι ένα ερώτημα CAML κάπου μέσα εκεί που θα μου επιτρέψετε να παρακάμψετε το είδος. CQWP αφήνει να κάνουμε αυτή την αλλαγή είδους, ίσως ημερολόγιο θα καθώς και?

  2. Επεξεργάζεστε το τμήμα web, Αναζητήστε μια εξαγωγή"" λειτουργία και … BZZZT! Δεν μπορώ να εξάγω της XML. Δεν υπάρχει καμία επιλογή εξαγωγής.

    Είμαι ακόμα κρατώντας ελπίδα ότι μπορώ να βρω και να τροποποιήσετε το ερώτημα μερικά CAML. Δεδομένου ότι εγώ δεν μπορώ να εξαγάγετε το τμήμα web, που αφήνει το SharePoint Designer.

  3. Προσθέσετε το ημερολόγιο τμήμα web σε μια τοποθεσία sandbox και να ανοίξει το εν λόγω site χρησιμοποιώντας το SharePoint Designer. Θα εξετάσουμε το περιθώριο κέρδους για το τμήμα web και να βρω αυτό που ψάχνω. Αυτό έχει κωδικοποιηθεί τρέλα, αλλά είναι εκεί: "<ListViewXml …. >κωδικοποιημένο τρέλα</ListViewXml>". Ειδικά, υπάρχει αυτό το κόσμημα:

<Ερώτημα>
<Όπου>
<DateRangesOverlap>
<FieldRef όνομα = "EventDate" />
<FieldRef όνομα = "Ημερομηνία λήξης" />
<FieldRef όνομα = "RecurrenceID" />
<Δημιουργία τύπου τιμής = "Ημερομηνία/ώρα">
<Μήνα />
</Αξία>
</DateRangesOverlap>
</Όπου>
<OrderBy><FieldRef όνομα = "Session_x0020_ID" /></OrderBy>
</Ερώτημα>

(Έχω αποκωδικοποιούνται το &lt;του και &του gt και άπλωναν χωρίζεται σε πολλαπλές σειρές, για λόγους σαφήνειας).

Προσθέστε το <OrderBy> λίγο και τώρα τα είδη κατά αναγνωριστικό περιόδου λειτουργίας, δεν την εσωτερική λίστα Θέση ID.

O ΓΙΓΑΝΤΙΑΊΑ άκρη’ το καπέλο Becky Isserman για το σχόλιο στο blog του Isha Sagi: http://www.sharepoint-tips.com/2008/07/caml-sorting-by-file-name.html. Εγώ δεν θα έχουν θέσει το <OrderBy> στο σωστό μέρος χωρίς την παρατήρησή της.

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

</Τέλος>

Δυνατότητες του SharePoint & Λύσεις διαχείρισης — Μην ξεχάσετε το U σε ΣΆΛΤΣΕΣ (ή το D για εκείνο το θέμα)

Συλλογικά, ξοδεύουμε πολύ χρόνο σκεπτόμενος για το SharePoint λύσεις — Πώς να δημιουργήσετε τους, ποιο εργαλείο πρέπει να χρησιμοποιήσετε, τι συμβαίνει όταν αποτυγχάνουν να αναπτύξουν, εργασίες χρονομέτρησης, εμβέλειες, κλπ. Ξοδεύουμε τόσο πολύ χρόνο να σκεφτόμαστε την εκ των προτέρων bits που είναι εύκολο να ξεχάσετε ότι πρέπει να ανακαλέσει τους καθώς και. Επανατυλίξεως λύσεις είναι ίσως πιο δύσκολο, από την άποψη της σύλληψης, από την ανάπτυξη τους. Ανάπτυξη είναι βασικά μια υπόθεση βιβλίο μαγειρικής. Συνήθως, εγκαταστήσετε ένα χαρακτηριστικό, ίσως έχουν ένα χαρακτηριστικό γνώρισμα δέκτη φορτώσει ορισμένα στοιχεία σε μια λίστα, τέτοια πράγματα. Ωστόσο, επανατυλίξεως είναι δυνητικά πιο περίπλοκη.

Μια συγκεκριμένη λύση μπορεί να δημιουργήσει έργα τέχνης όπως αυτές:

  • Τύπος περιεχομένου
  • Λίστα Ορισμός
  • Ορισμό τοποθεσίας
  • Δεδομένων σε μια λίστα
  • Ακόμη και δέκτες
  • Φόρμες του InfoPath

Ο κατάλογος συνεχίζεται.

Ενώ είναι προφανώς σημαντικό να σχεδιάσετε μια λύση που ερωτώνται σωστά αυτές τις ατέλειες, είναι εξίσου σημαντικό να εξετάσει την ενημερωμένη έκδοση και να διαγράψετε τις περιπτώσεις. Εάν η λύση σας δημιουργεί μια νέα λίστα και να συμπληρώνει τις εν λόγω κατάλογο με δεδομένα, τι συμβαίνει όταν η λύση έχει ανασυρθεί? Σε ορισμένες περιπτώσεις, ο κατάλογος θα πρέπει να διαγραφεί. Σε άλλες περιπτώσεις, θα πρέπει να αφεθεί ανέπαφο για ιστορικούς σκοπούς. Απαιτήσεις της εταιρείας σας θα σας καθοδηγήσει στη σωστή απόφαση.

Να βοηθήσει με αυτό, δημιουργήσει μια μήτρα που απαριθμεί κάθε τεχνούργημα σας η λύση αναπτύσσεται στο SharePoint. Κατάλογο τρεις στήλες ανά το κατασκεύασμα, ένα για δημιουργία, Update και delete. Για κάθε περίπτωση, καθορίσει το σωστό αποτέλεσμα για την πράξη αυτή.

Αυτό το είδος της ανάλυσης γίνεται προφανώς καλύτερα πριν η λύση έχει ποτέ αναπτυχθεί μιας συστοιχίας SharePoint. Ωστόσο, όπως το κάπνισμα, Αυτό ποτέ δεν είναι αργά να αρχίσουν να κάνουν τα πράγματα σωστά. Δημιουργία μήτρας και να αναπτύξει ένα σχέδιο για την αντιμετώπιση της λείπει η ενημέρωση/διαγραφή σεναρίων. Μπορεί να είναι ένα σκληρό πρόβλημα που λύνει, αλλά τουλάχιστον θα έχετε βάλει ένα κουτί γύρω από το πρόβλημα.

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Quick Fix: Διαδικτυακές υπηρεσίες ότι Interact με με SharePoint, InvalidOperationException

Ένα εκατομμύριο χρόνια πριν, Βοήθησα αναπτύξει μια διαδικτυακή υπηρεσία που έγινε επίκληση μέσω μια προσαρμοσμένη ενέργεια για μια ροή εργασίας του SharePoint Designer. Αυτή την εβδομάδα, ο πελάτης ήθελε να το κινήσετε προς παραγωγή (Τέλος!) έτσι κάναμε.

Η προσαρμοσμένη ενέργεια που ελειτούργησε το πρόστιμο, αλλά δεν το έκανε η υπηρεσία web που επικαλείτο, μας δίνει αυτό το σφάλμα:

System.InvalidOperationException: Αυτή η λειτουργία μπορεί να εκτελεστεί μόνο σε έναν υπολογιστή που είναι συνδεδεμένος σε ένα σύμπλεγμα διακομιστών των χρηστών που έχουν δικαιώματα στον SQL Server να διαβάσετε από τη βάση δεδομένων ρύθμισης παραμέτρων. Να συνδέσετε αυτόν το διακομιστή σε σύμπλεγμα διακομιστών, Χρησιμοποιήστε το SharePoint προϊόντα και τεχνολογίες Οδηγός ρύθμισης παραμέτρων, βρίσκεται στο μενού "Έναρξη" στα εργαλεία διαχείρισης.
στο Microsoft.SharePoint.Administration.SPWebApplication.Lookup(Το URI requestUri)

Βγάζει ότι ξέχασα να προσθέσετε την υπηρεσία για το χώρο συγκέντρωσης εφαρμογών του SharePoint, στις υπηρεσίες IIS. Μόλις το έκανα που, λειτούργησε άψογα.

Αυτό το Φόρουμ απόσπαση MSDN μου έδωσε την ιδέα που χρειαζόμουν: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2c97c004-7118-4e06-a62c-b2b0ac07ac99

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για twitter: http://twitter.com/pagalvin

Γρήγορη και εύκολη: Να SPFolder της SPItemList

Συνεχίσει να τρέχει σε αυτό το πρόβλημα και η Google ποτέ δεν φαίνεται να καταλάβει τι θέλω να κάνω, έτσι σκέφτηκα θα ήθελα να γράψω αυτό.

Έχω κάνει πολλή δέκτη συμβάντων εντοπισμού σφαλμάτων σε την τελευταία εβδομάδα ή δύο. Το ER καθορίζεται ενάντια σε μια βιβλιοθήκη εγγράφων. Τα επιμέρους στοιχεία στη βιβλιοθήκη εγγράφων είναι άρρηκτα δεμένο με τους γονικούς φακέλους. Έτσι, Παίρνω πάντα το φάκελο του στοιχείου για διάφορους χειρισμούς. Κατά τον εντοπισμό σφαλμάτων, Έπρεπε να ενημερώσετε τα μετα-δεδομένα ενός φακέλου για ένα συγκεκριμένο στοιχείο με το αναγνωριστικό ξέρω.

Εδώ είναι μια μικρή εφαρμογή κονσόλας (σχεδιασμένο να λειτουργεί σε διακομιστή στη συστοιχία) που παίρνει δύο ορίσματα: το ID του στοιχείου και μια τιμή για να αντιστοιχίσετε ένα πεδίο, "Κατάσταση έγκρισης". Αυτό είναι δύσκολο κωδικούς πολλά πράγματα και να έχει κανένα έλεγχο σφαλμάτων.

Ο κώδικας που αναζητά μια μόνιμη τοποθεσία, παίρνει μια βιβλιοθήκη εγγράφων σκληρά κωδικοποιούνται και στη συνέχεια βρίσκει το στοιχείο που αναφέρεται. Στη συνέχεια, βρίσκει τον γονικό φάκελο αυτού του στοιχείου και εκχωρεί την τιμή κατάστασης.

Το βασικό δίδαγμα εδώ για μένα είναι ότι SPItem δεν παίρνει την πρόσβαση σας στο φάκελο. Θα πρέπει να χρησιμοποιήσετε SPListItem.File.

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

<κώδικα>
χρήση Σύστημα;
χρήση System.Collections.Generic;
χρήση System.Text;
χρήση Microsoft.SharePoint;
χρήση System.Collections;

χώρος ονομάτων Conchango
{
    /// <Περίληψη>
 /// </Περίληψη>
 Κατηγορία ManualFolderUpdate
    {
        στατική άκυρη Κύρια(συμβολοσειρά[] args)
        {
            συμβολοσειρά MSH = "ManualFolderUpdate (v1.0): "; // MSH = "κεφαλίδα μηνύματος"

 Κονσόλα.WriteLine(MSH + "Εκκίνηση.  Τροποποιήθηκε τελευταία στις 08/04/08.");

            συμβολοσειρά URL = http://localhost/xyzzy;

            χρήση (SPSite oSPSite = νέα SPSite(διεύθυνση URL))
            {

                χρήση (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Έγγραφα"];

                    Κονσόλα.WriteLine(MSH + «Πήρε τη βιβλιοθήκη εγγράφων.");

                    Κονσόλα.WriteLine(MSH + «Doc lib πλήθος στοιχείων: [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    συμβολοσειρά NewStatus = "xyzzy";

                    FolderID = σύστημα.Μετατροπή.ToInt32(args[0].ToString());
                    Κονσόλα.WriteLine("Αναζήτηση φακέλου για το στοιχείο: [" + FolderID + "].");

                    SPListItem Λι = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Κονσόλα.WriteLine(MSH + «Πήρε το γονικό φάκελο.");

                    NewStatus = args[1].ToString();
                    Κονσόλα.WriteLine("Ρύθμιση κατάσταση να [" + NewStatus + "].");

                    Κονσόλα.WriteLine("Επιστροφή για να διαπράξουν την ενημερωμένη έκδοση ή CTRL-C για να ματαιώσετε τύπου.");

                    Κονσόλα.ReadLine();

                    thisItemFolder.Item["Κατάσταση έγκρισης"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Κονσόλα.WriteLine(MSH + "Τελικά την ενημέρωση του φακέλου.  Την έξοδο.");

                } // χρησιμοποιώντας SPWeb

            } // χρησιμοποιώντας SPSite

 Κονσόλα.WriteLine(MSH + "Τελείωσε.");

        } // Κύρια

    } // Κατηγορία foldersync
} // χώρος ονομάτων
</κώδικα>

</Τέλος>

Εγγραφείτε στο blog μου.

Απόκρυψη προσαρμοσμένες ενέργειες στο SharePoint

Αρκετούς μήνες πριν, ενώ εργαζόταν σε ένα έργο για τον πελάτη, Δημιούργησα ένα χαρακτηριστικό γνώρισμα. Μεταξύ άλλων, αυτό το χαρακτηριστικό ορίζεται μια προσαρμοσμένη ενέργεια (αυτά εμφανίζονται στο πλαίσιο των ρυθμίσεων τοποθεσίας). Ο μόνος σκοπός για αυτό προσαρμοσμένη ενέργεια ήταν να αποδείξει ότι το χαρακτηριστικό γνώρισμα ενεργοποίησης εργαζόταν όπως αναμένεται. Βασικά, Χρησιμοποίησα ως μια ακατέργαστη μορφή εντοπισμού σφαλμάτων.

Πολύ να μου αμηχανία, αυτό το τεχνούργημα εντοπισμού σφαλμάτων έκανε τον τρόπο του από την dev UAT και παραγωγής, πριν κάποιος πήρε γύρω από την ζητώντας, "τι είναι αυτό το σύνδεσμο xyzzy?"

Από τώρα, Είμαστε στην παραγωγή και πραγματικά δεν θέλουν να απεγκαταστήσετε την δυνατότητα, καθορίσει elements.xml και στη συνέχεια εγκαταστήστε ξανά.

Todd ζοφερή επεσήμανε ένας εύκολος τρόπος για να το χειριστεί. Σύμφωνα με τα λόγια:

"CustomActions δεν αντιγράφονται στη βάση δεδομένων, είναι Διαβάστε απευθείας από το αρχείο Elements.xml και αντιγραφή σε κατάσταση εφαρμογής κατά το χρόνο εκτέλεσης. Έτσι, δεν χρειάζεται να απενεργοποιήσετε, απεγκατάσταση, επανεγκατάσταση, και να ενεργοποιήσετε τη δυνατότητα να αφαιρέσει η προσαρμοσμένη ενέργεια. Μόλις αφαιρέσετε από το αρχείο Elements.xml και να ανακυκλώνουν το χώρο συγκέντρωσης εφαρμογών(s) πραγματοποιούνται. Την επόμενη φορά που το χαρακτηριστικό έχει πεδίο εφαρμογής, δεν θα μπορείτε να δείτε το Προσαρμοσμένης_ενέργειας πια."

Ακολούθησα τις οδηγίες του και, Φυσικά, δουλεύουν.

Στην περίπτωσή μου, Αυτό είναι ένα τμήμα επίπεδο εγκατάσταση με ακριβώς ένα ενιαίο ΙΟΙ. Αν βρείτε τον εαυτό σας με αυτό το πρόβλημα στο μέλλον και με πολλαπλές ΙΟΙ της, Πιστεύω ότι θα πρέπει να κάνετε την αλλαγή, σε κάθε.

</Τέλος>

Εγγραφείτε στο blog μου.

Quick Fix: Πρόσβαση σε τοποθεσία του SharePoint ρίχνει [HttpException (0x 80004005): Αιτήματος έληξε.]

Ένας συνάδελφος προγραμματιστή εργαζόταν σε ένα έργο αυτή την εβδομάδα και έτρεξε σε ένα πρόβλημα χρονικό όριο ενώ εργαζόταν για την οικοδόμηση κάποιο μέρος τρελό web. Το τμήμα web του ήταν μια χαρά, αλλά "ξαφνικά" μια ανεξάρτητη περιοχή έγινε πολύ αργή και συχνά εξαντλήθηκε με αυτό το σφάλμα:

[HttpException (0x 80004005): Αιτήματος έληξε.]

Εγώ συνδεθεί και είδα ότι ήταν μια χαρά διάφορα άλλα sites. Υποπτευόμουν ότι υπήρχαν ορισμένα τμήματα web κρυφό στη σελίδα και χρησιμοποιώντας ο έμπιστος ?περιεχόμενα = 1 τεχνική εντοπισμού σφαλμάτων, Στην πραγματικότητα βρήκα 11 των τμημάτων Web στη σελίδα, μόνο δύο εκ των οποίων ήταν ορατά. Ακόμα καλύτερα (από την άποψη της let's-hope-I-find-something-ugly-here-that-I-can-fix), τρία από τα τμήματα web κλειστό είχε ένα όνομα "Σφάλμα".

Διέγραψα αυτών των τμημάτων web (που ο ίδιος πήρε εκπληκτικά μεγάλο χρονικό διάστημα) και που έλυσε το πρόβλημα. For today 🙂

</Τέλος>

Εγγραφείτε στο blog μου.

Επίκληση SSRS υπηρεσίες Web από WSS / ΒΡΎΑ σε περιβάλλον FBA

Έπρεπε να επικαλεστεί την CreateSubscription"" μέθοδος σε μια SSRS υπηρεσία web που φιλοξενείται σε μια FBA κατάφερε ΒΡΎΑ περιβάλλον από ένα μέρος του Ιστού συνήθειας. Γινόταν όλο και παραλλαγές της:

  • 401: Δεν επιτρέπεται
  • Αντικείμενο μετακινηθεί

Το «αντικείμενο μετακινηθεί" μήνυμα ήταν πιο ενδιαφέρον, επειδή έλεγε ότι το αντικείμενο"" (η υπηρεσία μας SSRS) μετακινήθηκε"" να login.aspx. Αυτό σαφώς θα σήμαινε είχαμε κάποιο πρόβλημα ελέγχου ταυτότητας.

Τελικά, συνειδητοποίησα ότι είχα σελιδοδείκτη ένα blog εισόδου από Robert σοφίτας που περιγράφεται το πώς να επικαλείται μια υπηρεσία Ιστού WSS/MOSS γενικής χρήσης που ζουν μέσα σε ένα περιβάλλον FBA. Σημειώστε ότι δεν μπορώ να συνδέσω άμεσα με το άρθρο (ως της 06/09/08) επειδή θέλει να τον έλεγχο ταυτότητας. Η σύνδεση που παρέχω σας φέρνει σε μια «όλες οι θέσεις" Προβολή και μπορείτε να εντοπίσετε το συγκεκριμένο άρθρο κάνοντας αναζήτηση για "Υπηρεσίες Web ΒΡΎΑ πρόσβαση χρησιμοποιώντας έλεγχο ταυτότητας βάσει φορμών".

Εδώ είναι ο κώδικας που εργάστηκε για μας:

ReportingService2006 rs = τιμή null; 
// Έλεγχος ταυτότητας ΑΠΘ ελέγχου ταυτότητας = νέα Έλεγχος ταυτότητας(); 
α.π.θ.URL = "http://URL/_vti_bin/Authentication.asmx";
α.π.θ.CookieContainer =
νέα CookieContainer();
LoginResult αποτέλεσμα = α.π.θ.Σύνδεση(«userid», "κωδικός πρόσβασης");
Αν (αποτέλεσμα.Κωδικός σφάλματος == LoginErrorCode.NoError) 
{
// Κανένα λάθος, Έτσι, πάρτε τα cookies.
Μπισκότα CookieCollection = α.π.θ.CookieContainer.GetCookies(νέα URI(α.π.θ.URL));
Cookie authCookie = τα cookies[αποτέλεσμα.CookieName];
RS =
νέα ReportingService2006();
RS.URL =
"http://Server/_vti_bin/ReportServer/ReportService2006.asmx";
RS.CookieContainer =
νέα CookieContainer();
RS.CookieContainer.Add(authCookie);
}
Δοκιμάστε
{
  RS.CreateSubscription(έκθεση, extSettings, Desc, eventType, matchData, parameters1);
}
αλιευμάτων (Εξαίρεση πρώην)
{
  Console.WriteLine(πρώην.Message.ToString());
}

Ερμηνεύω τα πράγματα στην εργασία όπως αυτό:

  • Μας το τμήμα web πρέπει να καλέσετε την υπηρεσία ελέγχου ταυτότητας και να πω, "Γεια σου, Tony, είναι μου!".
  • Υπηρεσία ελέγχου ταυτότητας απαντά λέγοντας, "Γεια σου, Ξέρω ότι. Πώς είναι τα παιδιά? Εδώ είναι ένα διακριτικό."
  • Μπορούμε να καλέσετε την υπηρεσία SSRS και να πούμε, «Tony μου έστειλε, Εδώ είναι το διακριτικό."

</Τέλος>

Εγγραφείτε στο blog μου.

Γρήγορη και απλή: Παροχή μια τοποθεσία Web χρησιμοποιώντας το μοντέλο αντικειμένου του SharePoint σε C#

Εγώ προσπάθησα ψάχνω για ένα μικρό απόσπασμα κώδικα που θα δείξει πώς μπορώ να δημιουργήσω ένα νέο SPWeb μιας συλλογής τοποθεσιών. Δεν βρήκα το ως εύκολα ή γρήγορα όπως περίμενα έτσι σκέφτηκα ότι θα χαστούκι μαζί μια μικρή είσοδος για το θέμα.

Αυτός ο κώδικας δημιουργεί μια νέα τοποθεσία Wiki:

 SPSite Συλλογή_τοποθεσιών;

    Συλλογή_τοποθεσιών = νέα SPSite("http://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy τίτλος",
        xyzzy περιγραφή"", 1033, SPWebTemplate.WebTemplateWIKI, ψευδές, ψευδές);

Οι αρχικές έρευνες μου απέτυχε, επειδή έψαχνα για φράσεις όπως "πρόβλεψη μια τοποθεσία web χρησιμοποιώντας το μοντέλο αντικειμένου του sharepoint" και τα παρόμοια.

Αν σας Αναζήτηση για "Webs.Add()", θα βρείτε ένα αριθμό καταχωρήσεων blog πολύ χρήσιμο, Άρθρα MSDN και SDK τεκμηρίωσης που πάει σε βάθος επί του θέματος. Εγώ οριστικά προτείνω αυτό το site.

</Τέλος>

Εγγραφείτε στο blog μου.

Technorati Tags: