Soluzione: System.io.FileNotFoundException su “SPSite = nuovo SPSite(URL)”

AGGIORNAMENTO: Ho postato questa domanda a MSDN qui (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) e Michael Washam di Microsoft ha risposto con una risposta concisa.

Ho creato un servizio web di agire come un BDC-friendly facciata per un elenco di SharePoint. Quando ho usato questo dal mio ambiente di sviluppo, ha funzionato benissimo. Quando questa migrazione a un nuovo server, Questo errore:

System.io.FileNotFoundException: L'applicazione Web a http://localhost/sandbox non potrebbe essere trovato. Verificare che l'URL è stato digitato correttamente. Se l'URL dovrebbe servire contenuti esistenti, l'amministratore di sistema potrebbe essere necessario aggiungere un nuovo mapping di URL di richiesta per l'applicazione prevista. a Microsoft.SharePoint.SPSite...ctor(Azienda agricola SPFarm, URI requestUri, Boolean contextSite, SPUserToken userToken) a Microsoft.SharePoint.SPSite...ctor(String requestUrl) a Conchango.xyzzy.GetExistingDocument(Stringa minId, String maxId, String titleFilter) in C:\Documenti e SettingsPaulMy DocumentiVisual Studio 2005ProjectsxyzzyBDC_DocReviewBDC_DocReviewDocReviewFacade.asmx.cs:linea 69

Ecco la linea 69:

utilizzando (Sito SPSite = nuovo SPSite("http://localhost/sandbox"))

Ho provato diverse varianti nell'URL, anche utilizzando il nome del server reale, l'indirizzo IP, barre finali l'URL, ecc. Ho sempre avuto quell'errore.

Ho usato Google per ricercare e. Molte persone affrontano questo problema, o variazioni di esso, ma nessuno sembrava di averlo risolto.

MOSS furbata fornito una dettagliata errore che esso non si è verificato a me per controllare il 12 registri di alveare. Alla fine, circa 24 ore dopo il mio collega consigliato di che fare così, Ho verificato il 12 l'hive di registro e trovato questo:

Un'eccezione si è verificato durante il tentativo di acquisire l'azienda agricola locale:
System.Security.SecurityException: Non è consentito l'accesso del registro di sistema richieste.
presso System.ThrowHelper.ThrowSecurityException(ExceptionResource risorse) presso Microsoft.Win32.RegistryKey.OpenSubKey(Name: String, Boolean scrivibile) presso Microsoft.Win32.RegistryKey.OpenSubKey(Name: String) presso Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_RegistryConnectionString() presso Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_Local() presso Microsoft.SharePoint.Administration.SPFarm.FindLocal(SPFarm& azienda agricola, Boolean& isJoined)
La zona dell'assembly che non è stata:  Risorse del computer

Questo ha aperto nuove vie di ricerca, così è stato torna a Google. Che mi ha portato a questo post nel forum: http://forums.CodeCharge.com/posts.php?post_id = 67135. Che non ha davvero aiutato me, ma lo ha fatto iniziare a farmi pensare che c'era un problema di database e/o sicurezza. Mollato e Di Andrew Connell postare finalmente attivato il pensiero che io dovrei assicurarsi che account dell'identità del pool di applicazioni aveva accesso appropriato per il database. Pensavo che lo ha già fatto. Tuttavia, il mio collega è andato e ha dato l'app pool identità account completo accesso a SQL.

Come ha fatto quel cambiamento, tutto ha iniziato a lavorare.

Qual è il prossimo successo è meglio espressa in un Haiku poesia:

Problemi di alzino le mani.
Swing e di perdere. Riprova.
Successo! Ma come? Perché?

Non voleva lasciare le cose solo come quello, preferendo dare l'autorizzazione richiesta minima (e probabilmente con un occhio di scrivere un post di blog; Picchiava il pugno, muhahahahaha!).

Autorizzazioni successive lei tolto l'account di identità del pool di app fino … non c'era più alcuna esplicita autorizzazione per l'account di identità del pool di app a tutti. Il servizio web ha continuato a funzionare bene.

Siamo andati e riavviato il server. Tutto ha continuato a funzionare bene.

Così, per ricapitolare: ci ha dato l'accesso completo alla piscina identità app e poi tolto. Il servizio web ha iniziato a lavorare e mai smesso di lavorare. Bizzarro.

Se qualcuno sa perché che dovrebbe avere lavorato, si prega di lasciare un commento.

</fine>

Technorati Tags:

11 pensieri su "Soluzione: System.io.FileNotFoundException su “SPSite = nuovo SPSite(URL)”

  1. Benjamin

    tizio , Ti amo , u fatto il mio giorno , Stavo lavorando su di esso per quasi un giorno , e hai appena salvato il mio tempo

    Risposta
  2. Fernando Gómez Flores

    Bel post, Grazie. Nel mio caso, il mio problema è stato risolto cambiando apppool di webservice per corrispondere a quello della raccolta siti di sharepoint.

    Cheers,
    Fernando A. Gómez F.

    Risposta
  3. Wilson Edgar

    Ciao, Ho anche avuto lo stesso problema. Mentre lo sviluppo sulla stessa macchina con sharepoint server, Stavo usando il Server di sviluppo Asp con diverse autorizzazioni non certamente non eseguiti con la stessa identità come sharepoint (più su questo qui: http://msdn.microsoft.com/en-us/library/58wxa9w5(VS).aspx) E allora, Ho a creare un nuovo sito in IIS (porta 8080) con la stessa identità come sharepoint.. e voilà.
    Spero che questo aiuta

    Risposta
  4. Zac Boyles
    C'è una buona probabilità che il ruolo del server securityadmin di SQL risolto il problema che si dovesse avere una volta che esso è stato eseguito. Sarebbe una buona spiegazione per esso continuando a lavorare.
    Risposta
  5. Faery

    Interessante resoconto. Stiamo avendo esattamente lo stesso problema in questo momento. Questo tipo di problema e comportamento imprevisto/inspiegabili è esattamente perché un sacco di sviluppatori non sopporta lavorare con SharePoint!

    Risposta
  6. Markus

    Questa parte dell'articolo….”ha dato all'app pool identità account accesso completo a SQL”, si può elaborare? “identità del pool di app” Presumo che significa il pool di applicazioni del sito di sharepoint, ma “accesso completo a SQL”, come fai a dare che? Creazione di un account di accesso server db per l'identità del pool di app che penso non è abbastanza…quindi, è il DB di sharepoint contenuto dove il nuovo account di accesso ottiene dbo (?) accesso? O su altri sharepoint db pure, come il db config? Per me che è dura, Poiché il mio db contenuto sp apparentemente non è gestito dall'istanza di sql server, a quanto pare è sotto “/Microsoft Office Servers/14.0/Data”, Comunque io non lo vedo in sql server mgr….qualche idea di come dare “accesso completo a SQL” in questo caso? Qualsiasi risposta sarebbe apprezzato…Io sono gentile bloccato ottenendo la mia applicazione console per creare un oggetto spsite!!

    Risposta

Lasciare una risposta a Benjamin cancella risposta

L'indirizzo email non verrà pubblicato. i campi richiesti sono contrassegnati *