Solución: System.IO.FileNotFoundException en “SPSite = new SPSite(URL)”

ACTUALIZACIÓN: He publicado esta pregunta a MSDN aquí (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) y Michael Washam de Microsoft respondió con una respuesta concisa.

He creado un servicio web para actuar como un Fachada BDC-amistoso para una lista de SharePoint. Cuando utilicé esto desde mi entorno de desarrollo, funcionó bien. Cuando migrado a un nuevo servidor, Me encontré con este error:

System.IO.FileNotFoundException: La aplicación Web en http://localhost/sandbox No se pudo encontrar. Verificar que usted ha escrito correctamente la URL. Si la dirección URL debe servir contenido existente, el administrador del sistema puede necesitar agregar una nueva asignación de URL de solicitud para la aplicación deseada. en Microsoft.SharePoint.SPSite...ctor(Granja SPFarm, URI requestUri, ContextSite Boolean, SPUserToken userToken) en Microsoft.SharePoint.SPSite...ctor(Cadena requestUrl) en Conchango.xyzzy.GetExistingDocument(Cadena minId, Cadena maxId, Cadena titleFilter) b Io:\Documents and SettingsPaulMy documentosVisual Studio 2005ProjectsxyzzyBDC_DocReviewBDC_DocReviewDocReviewFacade.asmx.cs:línea 69

Aquí está la línea 69:

utilizando (Sitio SPSite = new SPSite("http://localhost/sandbox"))

Traté de diversas variaciones en la URL, inclusive usando el nombre del servidor real, su dirección IP, barras que se arrastra en la dirección URL, etc.. Siempre tengo ese error.

He usado El Google a la investigación lo. Muchas personas enfrentan este problema, o variaciones de él, pero nadie parece tenerlo solucionado.

Tricksy MOSS proporcionó un detallado error que no se le ocurrió a mí para comprobar la 12 registros de colmena. Con el tiempo, acerca de 24 horas después de mi colega se recomienda que hacerlo, Comprobado la 12 sección registro y encontre esto:

Se produjo una excepción al intentar adquirir la granja local:
System.Security.SecurityException: No se permite el acceso de registro solicitado.
en System.ThrowHelper.ThrowSecurityException(Recursos ExceptionResource) en Microsoft.Win32.RegistryKey.OpenSubKey(Nombre de cadena, Boolean escritura) en Microsoft.Win32.RegistryKey.OpenSubKey(Nombre de cadena) en Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_RegistryConnectionString() en Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_Local() atMicrosoft.SharePoint.Administration.SPFarm.FindLocal(SPFarm& granja, Boolean& isJoined)
La zona de la Asamblea que no era:  MiPC

Esto abrió nuevas vías de investigación, Así que fue a la Google. Eso me llevó a esto Foro: http://forums.CodeCharge.com/posts.php?post_id = 67135. Que realmente no ayudarme pero al inicio lo hizo me hace pensar que hubo un problema de base de datos y seguridad. Siguió y De Andrew Connell publicar finalmente activa el pensamiento que debo estar seguro de que la cuenta de identidad de grupo de aplicaciones tenía un acceso adecuado a la base de datos. Pensé que ya lo. Sin embargo, mi colega fue y le dio la aplicación identidad cuenta completo acceso a la piscina a SQL.

Tan pronto como ella hizo ese cambio, todo comenzó a trabajar.

Lo que pasó después es mejor expresado como un Haiku poema:

Problemas que levanten la mano.
Swing y miss. Vuelve a intentarlo.
Éxito! Pero cómo? ¿Por qué?

No quería dejar las cosas solo así, prefiriendo darle los permisos mínimos necesarios (y probablemente con miras a escribir una entrada de blog; La golpeé con el punzón, muhahahahaha!).

Sustrajo sucesivos permisos de la cuenta de identidad app piscina hasta … ya no había ningún permiso explícito para la cuenta de identidad del grupo de aplicación en todo. El servicio web continuó trabajando muy bien.

Fuimos y reiniciar los servidores. Todo continuó trabajando bien.

Por lo tanto, en Resumen: nos dio el acceso a la identidad de la aplicación piscina completo y luego lo llevó. El servicio web comenzó a trabajar y nunca dejó de funcionar. Extraño.

Si alguien sabe por qué eso debería haber funcionado, por favor dejar un comentario.

</final>

Etiquetas de Technorati:

11 pensamientos sobre "Solución: System.IO.FileNotFoundException en “SPSite = new SPSite(URL)”

  1. Fernando Gómez Flores

    Buen post, Gracias. En mi caso, mi problema fue solucionado cambiando apppool del webservice para que coincida con el de la colección de sitios de sharepoint.

    Saludos,
    Fernando A. Gómez F.

    Respuesta
  2. Wilson Edgar

    Hola, También tuve el mismo problema. Mientras se desarrolla en la misma máquina con sharepoint server, Estaba usando el servidor de desarrollo de Asp con diferentes permisos no ciertamente no apuntan en la misma identidad que sharepoint (más información sobre ésta: http://msdn.microsoft.com/en-us/library/58wxa9w5(VS.80).aspx) Y qué, He crear un nuevo sitio en IIS (Puerto 8080) con la misma identidad que sharepoint.. y listo.
    Espero que esto ayude

    Respuesta
  3. Zac Boyles
    Hay muchas posibilidades de que la función del servidor de SQL securityadmin ha solucionado el problema que estaba teniendo una vez se corrió. Eso sería una buena explicación para ello seguir trabajando.
    Respuesta
  4. FAERY

    Bueno writeup. Vamos a tener exactamente el mismo problema ahora mismo. Este tipo de problema y comportamiento inesperado/inexplicable es por qué exactamente no puede soportar un montón de desarrolladores trabajando con SharePoint!

    Respuesta
  5. Markus

    Esta parte del artículo….”dio el identidad cuenta app pool completo acceso a SQL”, ¿Puedes explicarlo? “identidad del grupo App” Supongo que significa que la piscina de la aplicación del sitio de sharepoint, pero “acceso completo a SQL”, ¿Cómo le da eso? Crear un inicio de sesión en el servidor de db para la identidad del grupo app que creo que no es suficiente…Así es en el db contenido de sharepoint donde el nuevo inicio de sesión pone dbo (?) acceso? U otro sharepoint de db como, como la base de datos de configuración? Para mí eso es duro, Porque mi db contenido sp aparentemente no es manejado por la instancia de sql server, Aparentemente es bajo “/Microsoft Office Servers/14.0/Data”, de todos modos yo no lo veo en sql server mgr….¿alguna idea de cómo dar “acceso completo a SQL” en este caso? Agradecería cualquier respuesta…Estoy un poco pegado a mi aplicación de consola para crear un objeto spsite!!

    Respuesta

Leave a Reply a Benjamin Cancelar respuesta

su dirección de correo electrónico no será publicada. Los campos necesarios están marcados *