Μηνιαία Αρχεία: Μπορεί να 2011

PerformancePoint και σφάλματος 33494

Ένας από τους πελάτες μου που ονομάζεται σήμερα όταν τους περιβάλλον PerformancePoint (στο SharePoint 2010) χάλασε.  Έναν από τους διακομιστές app στο αγρόκτημα λίγος χώρος στο δίσκο.  Επισημαίνοντας ότι, το πρόγραμμα-πελάτης απεγκατασταθεί "πάρα πολύ", και τα πράγματα PP όλα σταμάτησαν να λειτουργούν.  Διάφορα τμήματα web θα δείξει "Παρουσιάστηκε ένα μη αναμενόμενο σφάλμα. Σφάλμα 33494. Πρόσθετες λεπτομέρειες έχουν καταγραφεί για το διαχειριστή":

image

Κοίταξα ένα λάθος και δεν βρήκε τίποτα ειδικά για "σφάλμα 33494" αλλά το φόρουμ MSDN απόσπαση ήταν χρήσιμο: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Βρήκα ADOMD.NET εδώ ως ένα στοιχείο στο διακομιστή SQL 2008 Πακέτο δυνατοτήτων: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(Κάντε κλικ για μεγέθυνση)

Κατεβάσετε και να εγκαταστήσει που, και καθόρισε τα πάντα.

Νομίζω ότι αυτό είναι ένα είδος αρκετά εκκεντρικά σφάλμα, αλλά αν το χτυπήσει, εσείς τουλάχιστον έχετε μια επιλογή.

</Τέλος>

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

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

Lists.asmx, GetListItems και φάκελοι

Έκανα κάποια έρευνα για κάποιον σήμερα γύρω από την υπηρεσία web list.asmx παρέχεται ως μέρος του SharePoint 2010 (και παλιότερες).  Ήταν σε θέση να πάρετε τα στοιχεία λίστας στο φάκελο ρίζας (καθώς και τα ονόματα των υποφακέλων), αλλά δεν ήταν δυνατή η λήψη στοιχείων σε υποφακέλους.  Έκανα κάποια ρίχνοντας μια ματιά για το Ίντερνετ και είναι μια εκπληκτικά κοινή ερώτηση.  Ακόμη, Θα μπορούσα να πάρετε μια καλή απάντηση στο απλό ερώτημα, "αν γνωρίζω το φάκελο, Πώς μπορώ να πάρω τα στοιχεία στο φάκελο?”  Για να είμαι ειλικρινής, Εγώ δεν προσπαθώ τόσο σκληρά, δεδομένου ότι έχω ήθελε να το καταλάβουμε αυτό μία έξω από μόνος μου για μια στιγμή Χαμόγελο.

Να ορίσετε το χρόνο αυτό, Δημιούργησα μια τοποθεσία που ονομάζεται «Blogging σενάρια» και μια προσαρμοσμένη λίστα όνομα "Προσαρμοσμένη λίστα με υπο-φάκελλοι".  Δημιούργησα στη συνέχεια φακέλους με το όνομα:

  • Έτος 2005
  • Έτος 2006
  • Έτος 2007

Πρόσθεσα μερικά στοιχεία στο φάκελο «Έτους 2006».  Αυτό είναι τι μοιάζει:

image

Ο φίλος μου δεν είναι σύνταξη κώδικα C# αλλά μάλλον χρήση της Java, έτσι το φάκελο SOAP ήταν ό, τι είναι πραγματικά αναγκαία.  Για να το επιτύχουμε, Μου έγραψε λίγο jQuery και στη συνέχεια χρησιμοποιείται fiddler για να λάβετε την πραγματική συνομιλία HTTP.

Εδώ είναι το σχετικό jQuery (Αντέγραψα κώδικα κάτω κάτω αν θέλετε για την αντιγραφή/επικόλληση):

image

Τους πρώτο κλειδί είναι να περιλαμβάνουν τόσο έναν <queryOptions> και <QueryOptions> Κόμβος.  Το δεύτερο κλειδί είναι ότι η <Φάκελος> ο κόμβος είναι μια διεύθυνση URL, όπου ο υπολογιστής-πελάτης έχει πρόσβαση.

Μπορεί να υπάρχουν άλλοι τρόποι να ολοκληρώσουμε αυτό το, αλλά αυτή λειτούργησε καλά για μένα όταν χρησιμοποιώντας jQuery.

Εδώ είναι το φάκελο SOAP για τα ανωτέρω:

<soapenv:Φάκελος xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Οργανισμός>
    <GetListItems xmlns =’
http://schemas.microsoft.com/SharePoint/SOAP/’>
      <listName>Προσαρμοσμένη λίστα με φακέλους Sub</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef όνομα =' Τίτλος’ />
          <FieldRef όνομα ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Φάκελος>
http://demoserver1/Blogging Σενάρια/κατάλογοι/προσαρμοσμένη λίστα με Sub φακέλων/έτος 2006</Φάκελος>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Οργανισμός>
</soapenv:Φάκελος>

Πολλά παραδείγματα και συζητήσεις γύρω από αυτό με ώθησε να πιστεύουν ότι ήταν όλα τα χρειάζομαι <QueryOptions> και καθορίστε ένα όνομα φακέλου.  Για μένα, Μου χρειάζεται τόσο αναδιπλώνονται μέσα <queryOptions> καθώς και να καθορίσετε ένα έγκυρο URL για το <Φάκελος> Κόμβος.

Εδώ είναι το jQuery AJAX εγκατάστασης:

$(έγγραφο).έτοιμο(συνάρτηση() {
       var soapEnv =
           "<soapenv:Φάκελος xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Οργανισμός> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/SharePoint/SOAP/’> \
                       <listName>Προσαρμοσμένη λίστα με φακέλους Sub</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef όνομα =' Τίτλος’ /> \
                              <FieldRef όνομα ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Φάκελος>http://demoserver1/Blogging Σενάρια/κατάλογοι/προσαρμοσμένη λίστα με Sub φακέλων/έτος 2006</Φάκελος> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Οργανισμός> \
           </soapenv:Φάκελος>";

</Τέλος>

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

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

Μοτίβα ΕΕΠ ροής εργασίας, Συμβουλές και κόλπα

Έδωσα την παρουσίασή μου σήμερα στο SharePoint Fest στο Ντένβερ. Εδώ είναι η παρουσίαση του PowerPoint ίδια: http://www.mstechblogs.com/paul/wp-content/uploads/2011/05/SharePointFest.pptx

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

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

Lists.asmx, GetList και "τιμή δεν είναι δυνατό να είναι null”

Ανακάλυψα σήμερα που το GetList() μέθοδο σε lists.asmx υπηρεσία Web πρέπει να αποκαλείται πολύ προσεκτικά ή είναι επιρρεπείς να ρίξει ένα μυστηριώδες εξαίρεση "Αξία δεν μπορεί να είναι null" (και αυτό υποθέτοντας ότι μπορείτε να λάβετε παρελθόν το ακόμη χειρότερο μήνυμα γενικού σφάλματος, "Εξαίρεση του τύπου «Microsoft.SharePoint.SoapServer.SoapServerException’ δημιουργήθηκε.")  Ειδικά, Βρήκα ότι δεν μπορείτε να δώσετε οποιοδήποτε είδος πρόθεμα σχετικά με τη μέθοδο GetList.  Το ακόλουθο απόσπασμα jQuery διαφωτίζει το σημείο:

image

Αν το κάνετε που, η υπηρεσία web ανταποκρίνεται με "Αξία δεν μπορεί να είναι null" σύμφωνα με αυτό fiddler-παρείχε την απομαγνητοφώνηση HTTP:

<?XML έκδοση = 1.0»" κωδικοποίηση = "utf-8"?>
  <σαπούνι:Φάκελος
     xmlns:σαπούνι ="
http://schemas.xmlsoap.org/SOAP/Envelope/"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:xsd ="
http://www.w3.org/ 2001/σχήματος XML">

  <σαπούνι:Οργανισμός>
    <σαπούνι:Σφάλμα>
      <faultcode>σαπούνι:Διακομιστή</faultcode>
      <faultstring>
        Εξαίρεση του τύπου «Microsoft.SharePoint.SoapServer.SoapServerException’ ρίχτηκε.
      </faultstring>
      <λεπτομέρεια>
        <errorstring xmlns ="
http://schemas.microsoft.com/SharePoint/SOAP/">
Αξία δεν μπορεί να είναι null.
        </errorstring>
      </λεπτομέρεια>
    </σαπούνι:Σφάλμα>
  </σαπούνι:Οργανισμός>
</σαπούνι:Φάκελος>

Φυσικά, πιθανώς δεν θα προσθέτετε πρόθεμα "s0" για τη δική σας, αλλά μερικά εργαλεία είναι επιρρεπείς να κάνουμε (όπως το Eclipse).

Αυτό είναι όλο και πιο συγκεχυμένη / απογοητευτικό επειδή άλλες μεθόδους ανέχεται προθέματα.  Για παράδειγμα, το GetListCollection μέθοδος δεν πειράζει εάν είναι γαλλική, ακόμη και με ανοησίες προθέματα όπως "xyzzy":

image

Αυτό "η τιμή δεν μπορεί να είναι null" φαίνεται αρκετά κοινά με lists.asmx, οπότε ελπίζω αυτό θα βοηθήσει κάποιος στο μέλλον.

</Τέλος>

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

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

Ένθεση ατελείωτα <div> Ετικέτες και jQuery

Αυτό φαίνεται σαν τέτοια ένα αιφνίδιο τέλος θέμα, Δεν είμαι σίγουρος ότι αξίζει πραγματικά blogging σχετικά με, αλλά αυτό ποτέ δεν έχει διακοπεί μου πριν από, Επομένως εδώ θα προχωρήσουμε Χαμόγελο

Εργάζομαι σε ένα έργο, όπου εγώ τράβηγμα ορισμένα δεδομένα από μια αναζήτηση, συσκευασίας αυτό σε ένα μήνυμα XML και στη συνέχεια το XML είναι τελικά μετατραπεί σε HTML μέσω XSLT.  Υπάρχει πολλή jQuery συμμετέχουν, ένα bit που υλοποιεί ορισμένα στηλοθέτησης λειτουργικότητα.  Όταν κάνετε κλικ σε μια καρτέλα (Αλήθεια, ένα <div>), jQuery επικαλείται .hide() και .show() στις διάφορες divs (το φορτίο Αρχική σελίδα λήψεις όλο το περιεχόμενο, ώστε να υπάρχουν σε αυτή την περίπτωση δεν καταχωρήσεων προς τα πίσω).

Ένα σωρό ώρες ago, το tab switching λογική άρχισε να συμπεριφερθούν με αστάθεια και δεν θα εμφανίζει μία μου καρτελών.  Τελικά παρακολούθησα αυτό οφείλεται φυσικά στο γεγονός ότι του internet explorer (τουλάχιστον) πίστευαν ότι το <div> ετικέτες που είναι ένθετες πολύ, πολύ βαθύτερα από τα οποία προορίζονται.Θα εμφανίσει τη γραμμή εργαλείων του δημιουργού:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— Τέλος, δείχνει αυτό έκλεισε τελείως εδώ!

Έτσι, Αν έκανα μια $(«#Tab1Content»).απόκρυψη(), Εγώ θα επίσης απόκρυψη Tab2 και εγώ θα μπορούσε ποτέ εμφάνιση Tab2 εάν εγώ δεν δείχνουν επίσης Tab1.  Αντέγραψα και επικόλλησα κώδικα σε visual studio και αυτό έδειξε όλα του div η επένδυση μέχρι ωραία, ακριβώς όπως υποτίθεται ότι κάνει, ψάχνει σαν αυτό:

-<div id = "Tab1Content">
  +<div>
  +<div>
-<div id = "Tab2Content">
  +<div>
  +<div>

Θα χτυπήσει το κεφάλι μου στον τοίχο για λίγο και παρατήρησα ότι στην πραγματική HTML κώδικα παράγει πολλά κενά <div> Ετικέτες, όπως:

<οργανισμός>

  <div id = "Tab1Content">

    <div αναγνωριστικό = «row1» />
    <div αναγνωριστικό = «row2» />

  </div>

  <div id = "Tab2Content">

    <div αναγνωριστικό = «row1» />
    <div αναγνωριστικό = «row2» />

  </div>

</οργανισμός>

(Τα παραπάνω είναι waaaaaaaaaaaay να μετατρέπονται σε κοινότοπα.  Τα κενά tag div tag είναι απολύτως έγκυρες. Ορισμένες μου <div> Ετικέτες ήταν πλήρες του περιεχόμενο, αλλά δεν ήταν πολλά περισσότερα.  Μου ήρθε με την υλοποίηση που μου <XSL:για-κάθε> οδηγίες εκπέμπουν τη συνοπτική div ετικέτες όταν το xsl:δεν for-each' βρει οποιαδήποτε δεδομένα.  Εγώ αναγκάζονται ένα σχόλιο HTML της εξόδου, όπως φαίνεται:

image

 

Αφού το έκανα που, όλα τα του div ευθυγραμμισμένο ωραία και μου καρτέλα εναλλαγής άρχισε να εργάζεται.

Όπως πάντα, Ελπίζω αυτό βοηθά κάποιον σε μια πρέζα.

</Τέλος>

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

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

Quick Fix: "Το όνομα του τύπου περιεχομένου"$ Resources:ReportServerResources … δεν είναι δυνατό να περιέχουν … ειδικούς χαρακτήρες”

Έχω ξοδεψει κάποιο χρόνο καθαρίζοντας επάνω ένα SharePoint 2010 site και ένα από τα θέματα εκκαθάρισης που σχετίζεται με μια διεφθαρμένη / λανθασμένη εγκατάσταση SQL Server υπηρεσίες έκθεση θέμα.  Το ζήτημα προέκυψε, όταν ένας συνάδελφος προσπάθησε να σώσει μια τοποθεσία ως πρότυπο και στη συνέχεια να δημιουργήσετε δημιουργήσετε μια νέα τοποθεσία που βασίζεται σε αυτό το πρότυπο.  Αποθήκευση λειτουργία ελειτούργησε το πρόστιμο, αλλά όταν προσπάθησε να δημιουργήσει το νέο site, SharePoint, εμφανίζεται το ακόλουθο μήνυμα λάθους:

Σφάλμα

Το όνομα του τύπου περιεχομένου ' $Resources:ReportServerResources,DataSourceContentTypeName;«δεν μπορεί να περιέχει: \ / : * ? “ # % < > { } | ~ & , δύο συνεχόμενες περιόδους (..), ή ειδικούς χαρακτήρες, όπως ο στηλοθέτης.

Εδώ είναι ένα καπάκι οθόνης:

 

image

Είχα μια ματιά στο οι τύποι περιεχομένου στην τοποθεσία και βρήκε αυτό:

image

Οι τύποι περιεχομένου είναι σαφώς ανθυγιεινά.

Αυτό το ζήτημα φαίνεται να καταλήξουμε πολύ για το Ίντερνετ και δεν φαίνεται να υπάρχει ένα ενιαίο συναίνεση για το πώς να το λύσουμε.  Βρήκα ένα εύχρηστο πίνακα που αντιστοιχίζονται τα ονόματα κακό τύπο περιεχομένου με καλό τύπο περιεχομένου ονόματα εδώ: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Ενημέρωσα τους με μη αυτόματο τρόπο thusly:

image

(BrightStarr στο όνομα είναι προφανώς προαιρετική, αλλά δεν μπορεί να πειράξει Χαμόγελο )

Αυτό μου επέτρεψε να δημιουργήσετε ένα νέο πρότυπο και δεν διέσπασαν τίποτα από την άλλη περιοχές, συμπεριλαμβανομένων κάποια πράγματα PerformancePoint Server που εργάζονται σε μια εντελώς διαφορετική ομάδα ανθρώπων.  Ήμουν τότε σε θέση να δημιουργήσετε μια νέα τοποθεσία στο πρότυπο.  Επιτυχία!

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

</Τέλος>

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

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

Μια αιτία για "Ο δημιουργός αυτού του σφάλματος δεν καθόρισε μια αιτία.”

Έχω έχετε κάνει πολλή δουλειά με αναζήτησης SharePoint πρόσφατα και συγκεκριμένα την κλάση KeywordQuery, ιδιότητες και μέθοδοι.

Εάν θέλετε το αποτέλεσμα να επιστρέψει αποτελέσματα πέρα από τις συνήθεις υπόπτους (βλέπε εδώ), προσθέτετε τη συλλογή SelectedProperties, όπως και στην:

myKeywordQuery.SelectProperties.Add("xyzzy");

Ευχαριστώ πολύ και μια συμβουλή για το καπέλο να Corey Roth και Αυτό το εξαιρετικά χρήσιμο blog post (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

Στην περίπτωσή μου, "xyzzy" δεν είναι στην πραγματικότητα μια διαχειριζόμενη ιδιότητα.  Όταν προσθέσατε το SelectedProperties ούτως ή άλλως, SharePoint δημιούργησε ένα από τα αγαπημένα μου ποτέ runtime εξαιρέσεις:

"Ο δημιουργός αυτού του σφάλματος δεν καθόρισε μια αιτία."

Ήθελα κυρίως το κεφάλαιο "R" στο λόγο.  Αυτό ακούγεται μου ως ισοδύναμο με .net"Δεν έχω καμία στόμα, και εγώ πρέπει να ουρλιάζουν.”

</Τέλος>

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

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

Εύχρηστο αναφοράς: Προεπιλεγμένη αποτελέσματα αναζήτησης KeywordQuery

Όταν επικαλείστε το Execute() μέθοδος σε μια KeywordQuery, Μπορείτε να δημιουργήσετε ένα ResultTable που βασίζονται σε ResultType.RelevantResults.  Αυτό το τμήμα κώδικα δείχνει τι εννοώ:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Ο πίνακας που προκύπτει θα έχει τις ακόλουθες στήλες πληροφοριών: 

Αναγνωριστικό εργασίας
Κατάταξη
Τίτλος
Συγγραφέας
Μέγεθος
Διαδρομή
Περιγραφή
Γράψτε
Όνομα_τοποθεσίας
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Εγώ αυτόν τον κατάλογο που προέρχονται από ένα SharePoint 2010 περιβάλλον, επιχείρηση έκδοση.  Ας ελπίσουμε ότι θα είναι χρήσιμο σε κάποιον στο μέλλον.

</Τέλος>

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

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

Ένας λόγος για: "Απέτυχε να εξαγάγετε το αρχείο cab στο διάλυμα”

Ενώ εργάζεστε σε ένα τμήμα web visual studio έργου σήμερα, Έκανα ένα μικρό re-org ορισμένων αρχείων θα τεθούν σε φάκελο _layouts ως μέρος της διαδικασίας ανάπτυξης. Ειδικά, Εγώ μετονομάστηκε σε ένα αρχείο .js από "TypeAhead.js" "TypeAhead(παλιά).js"  Σκοπεύετε να το καταργήσετε, μόλις ο διάδοχός του "TypeAhead.js" είναι σωστή.  Φαινόταν ότι αυτό:

image

Αυτό προκάλεσε αμέσως ένα πρόβλημα με το visual studio, όταν προσπάθησα να αναπτύξετε το έργο:

Παρουσιάστηκε σφάλμα στο βήμα ανάπτυξης «Προσθέστε λύση»: Απέτυχε να εξαγάγετε το αρχείο cab στο διάλυμα.

Αποδεικνύεται ότι δεν πρέπει να θέσετε μια παρένθεση στα ονόματα αρχείων.  Κατάργησα την parens και που έλυσε το πρόβλημα.

</Τέλος>

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

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