Λύση: System.IO.FileNotFoundException στο “SPSite = νέα SPSite(διεύθυνση URL)”

Η ΕΝΗΜΕΡΩΜΈΝΗ ΈΚΔΟΣΗ: I δημοσιεύτηκε το ζήτημα να MSDN εδώ (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) και Michael Washam της Microsoft απάντησε με μια συνοπτική απάντηση.

Δημιούργησα μια υπηρεσία web να ενεργεί ως ένα Φιλικές προς το BDC πρόσοψη σε μια λίστα του SharePoint. Όταν αυτό χρησιμοποιείται από το περιβάλλον ανάπτυξης μου, λειτούργησε άψογα. Όταν εγώ μετεγκατάσταση αυτό σε νέο διακομιστή, Αντιμετώπισα αυτό το σφάλμα:

System.IO.FileNotFoundException: Η εφαρμογή Web στο http://localhost/sandbox δεν ήταν δυνατή η εύρεση. Βεβαιωθείτε ότι έχετε πληκτρολογήσει σωστά τη διεύθυνση URL. Εάν η διεύθυνση URL πρέπει εξυπηρετούν υπάρχον περιεχόμενο, ο διαχειριστής του συστήματος ίσως χρειαστεί να προσθέσετε μια νέα αντιστοίχιση διεύθυνσης URL του αιτήματος της εφαρμογής. σε Microsoft.SharePoint.SPSite...ctor(SPFarm αγρόκτημα, Το URI requestUri, Boolean contextSite, SPUserToken userToken) σε Microsoft.SharePoint.SPSite...ctor(RequestUrl συμβολοσειρά) σε Conchango.xyzzy.GetExistingDocument(MinId συμβολοσειρά, MaxId συμβολοσειρά, TitleFilter συμβολοσειρά) γ:\Έγγραφα και SettingsPaulMy DocumentsVisual Studio 2005ProjectsxyzzyBDC_DocReviewBDC_DocReviewDocReviewFacade.asmx.cs:γραμμή 69

Εδώ είναι γραμμή 69:

χρήση (Τοποθεσία της SPSite = νέα SPSite("http://localhost/sandbox"))

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

Χρησιμοποίησα Το Google να την έρευνα. Πολλοί άνθρωποι αντιμετωπίζουν αυτό το ζήτημα, ή παραλλαγές του, αλλά κανείς δεν φαινόταν να επιλυθεί.

Tricksy MOSS προβλέπεται τέτοια λεπτομερή σφάλμα που αυτό δεν προκύψει μου για τον έλεγχο της 12 Κυψέλη κούτσουρα. Τελικά, σχετικά με την 24 ώρες μετά ο συνάδελφός μου Συνιστάται αυτό το κάνω, Έλεγξα το 12 Hive καταγραφής και βρήκε αυτό:

Παρουσιάστηκε μια εξαίρεση κατά την προσπάθεια να αποκτήσει το τοπικό αγρόκτημα:
System.Security.SecurityException: Δεν επιτρέπεται η πρόσβαση στο μητρώο ζητήθηκε.
στο System.ThrowHelper.ThrowSecurityException(ExceptionResource πόρου) στο Microsoft.Win32.RegistryKey.OpenSubKey(Συμβολοσειρά όνομα, Boolean εγγράψιμο) στο Microsoft.Win32.RegistryKey.OpenSubKey(Συμβολοσειρά όνομα) στο Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_RegistryConnectionString() στο Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_Local() στο Microsoft.SharePoint.Administration.SPFarm.FindLocal(SPFarm& αγρόκτημα, Δυαδική τιμή& isJoined)
Ήταν η ζώνη του συγκροτήματος που απέτυχε:  "Ο_Υπολογιστής_μου"

Αυτό άνοιξε νέους δρόμους της έρευνας, Έτσι, ήταν πίσω στο The Google. Που με οδήγησε σε αυτό μήνυμα στο φόρουμ: http://forums.CodeCharge.com/Posts.php?post_id = 67135. Που πραγματικά δεν με βοήθησε αλλά άρχισες μου κάνει πως υπήρχε μια βάση δεδομένων ή/και την ασφάλεια θέμα. Εγώ soldiered και Του Andrew Connell μετά το τέλος ενεργοποιείται η σκέψη ότι εγώ θα πρέπει να βεβαιωθείτε ότι ο λογαριασμός ταυτότητας του χώρου συγκέντρωσης εφαρμογών είχε κατάλληλη πρόσβαση στη βάση δεδομένων. Σκέφτηκα ότι το έκανε ήδη. Ωστόσο, ο συνάδελφός μου πήγε και έδωσε το app χώρου συγκέντρωσης ταυτότητα λογαριασμού πλήρη πρόσβαση σε SQL.

Μόλις έκανε την αλλαγή, τα πάντα άρχισε να εργάζεται.

Τι συνέβη επόμενο καλύτερο εκφράζεται ως ένα haiku ποίημα:

Προβλήματα σηκώσουν τα χέρια τους.
Σας swing και Μις. Δοκίμασε ξανά.
Επιτυχία! Αλλά πώς? Γιατί?

Δεν θέλει να αφήσει τα πράγματα μόνο όπως αυτή, προτιμώντας να δώσει τα ελάχιστα απαιτούμενα δικαιώματα (και πιθανώς γνώμονα την εγγραφή καταχώρηση ιστολογίου; Εγώ beat της να το διατρητικό, muhahahahaha!).

Αυτή αφαιρούνται διαδοχικές δικαιώματα από το λογαριασμό της ταυτότητα χώρου συγκέντρωσης app μέχρι … δεν υπήρχε πλέον ρητή άδεια για το app ο λογαριασμός ταυτότητα χώρου συγκέντρωσης σε όλα. Η υπηρεσία web συνέχισε να δουλεύει μια χαρά.

Πήγαμε και επανεκκίνηση διακομιστές. Τα πάντα που συνέχισαν να δουλεύουν μια χαρά.

Έτσι, για να ξεκαθαρίσω: δώσαμε το app ταυτότητα πλήρη πρόσβαση σε πισίνα και στη συνέχεια πήρε μακριά. Η υπηρεσία web άρχισε να εργάζεται και ποτέ δεν σταμάτησε να λειτουργεί. Παράξενη.

Αν γνωρίζει για ποιο λόγο που θα πρέπει να έχουν εργαστεί, Παρακαλώ αφήστε ένα σχόλιο.

</Τέλος>

11 thoughts on «Λύση: System.IO.FileNotFoundException στο “SPSite = νέα SPSite(διεύθυνση URL)”

  1. Βενιαμίν

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

  2. Fernando Gómez Flores

    Ωραίο μετά, Ευχαριστώ. Στην περίπτωσή μου, μου το πρόβλημα λύθηκε αλλάζοντας την ταυτότητα του webservice το ώστε να ταιριάζει με αυτό της συλλογής τοποθεσιών sharepoint.

    Γεια,
    Φερνάντο a. Gómez F.

  3. Ο Wilson Edgar

    Γεια σου, Είχα επίσης το ίδιο πρόβλημα. Παράλληλα με την ανάπτυξη στον ίδιο υπολογιστή με το διακομιστή του sharepoint, Μου χρήση διακομιστή ανάπτυξης Asp με διάφορα δικαιώματα δεν σίγουρα δεν εκτελείται υπό την ίδια ταυτότητα ως sharepoint (περισσότερες πληροφορίες σχετικά με αυτό εδώ: http://msdn.microsoft.com/en-us/library/58wxa9w5(VS.80).aspx) Ε και, Έχετε μπορώ να δημιουργήσω μια νέα τοποθεσία του IIS (θύρα 8080) με την ίδια ταυτότητα ως sharepoint.. και ιδού.
    Ελπίδα αυτό βοηθά

  4. ZAC Boyles
    Υπάρχει μία καλή πιθανότητα να στο ρόλο διακομιστή του SQL securityadmin διορθώνει το ζήτημα που αντιμετωπίζατε από τη στιγμή που ήταν εκτελέστηκε. Αυτό θα ήταν μια καλή εξήγηση για αυτή συνέχισε να εργάζεται.
  5. Faery

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

  6. Markus

    Αυτό το μέρος του άρθρου….”έδωσε το app πισίνα ταυτότητας λογαριασμού πλήρη πρόσβαση σε SQL”, Μπορείτε να επεξεργαστεί? “ταυτότητα του χώρου συγκέντρωσης app” Υποθέτω ότι σημαίνει το συγκέντρωσης εφαρμογών της τοποθεσίας sharepoint, Αλλά “πλήρη πρόσβαση σε SQL”, Πώς που δίνετε? Δημιουργώντας μια σύνδεση στο διακομιστή db για την ταυτότητα χώρου συγκέντρωσης app νομίζω ότι δεν είναι αρκετά αρκετά…έτσι είναι σχετικά με το db περιεχομένου sharepoint όπου τα νέα στοιχεία σύνδεσης παίρνει dbo (?) πρόσβαση? Ή άλλες sharepoint της db καθώς και, όπως το config db? Για μένα αυτό είναι σκληρή, διότι μου sp περιεχομένου db δεν είναι προφανώς να εκτελεστούν από την παρουσία του sql server, Προφανώς είναι υπό “/Microsoft Office Servers/14.0/Data”, Τέλος πάντων εγώ δεν το βλέπω στο sql server mgr….οποιεσδήποτε ιδέες πώς να δώσει “πλήρη πρόσβαση σε SQL” σε αυτή την περίπτωση? Κάθε απάντηση θα εκτιμώταν…Είμαι είδος κολλήσει να πάρει κονσόλα μου app, για να δημιουργήσετε ένα αντικείμενο spsite!!

Αφήστε μια απάντηση, να Βενιαμίν Ακύρωση απάντησης

Η διεύθυνση email σας δεν θα δημοσιευθεί. τα απαιτούμενα πεδία είναι επισημασμένα *