Pregunta

He creado un receptor de eventos de SharePoint, que los incendios sobre el punto de actualización. El receptor necesita AfterProperties de acceso y ListItem.

Cuando se dispara el receptor de eventos desde una aplicación web de SharePoint usando una dirección IP ( http://10.0.4.50/sites / ), que arroja un FileNotFoundException , cuando se accede a SiteID Y WebUrl en SPItemEventProperties. La aplicación web en http://10.0.4.50/sites/companyName no se pudo encontrar . Compruebe que ha introducido la URL correctamente.

Cuando se dispara el receptor de eventos utilizando el nombre de host, se especifica en la configuración de la colección de sitios http: // computerhostname / sitios / companyName . Esta multa obras, sin excepción.

//Combine Both AfterProperties And ListItem
var ListProperties = new List<KeyValuePair<string, object>>();
ListProperties.AddRange(properties.AfterProperties.ToKeyValue());
ListProperties.AddRange(properties.ListItem.ToKeyValue(p => !p.Sealed));
var AvaliableProperties = ListProperties.Distinct(new KeyValueComparer<object>());
¿Fue útil?

Solución

Esto no es necesariamente un problema de SharePoint, pero es más probable a la forma en que IIS está configurado en el host. Un sitio en particular puede ser "obligado" a una dirección IP y un nombre de host, y si el nombre de host no está presente en el HTTP GET enviada por el navegador a continuación, IIS devolverá un 404 NOT FOUND.

Se puede verificar esto mediante el uso de un navegador para ver si se puede acceder al sitio mediante la dirección IP.

Se puede añadir fijaciones adicionales si es necesario, pero sólo puede haber un "defecto" de enlace por dirección IP, por lo que sólo un sitio puede estar presente en (en su caso) 10.0.4.50.

Un posible camino alrededor de la situación en la que múltiples sitios están presentes, pero no se puede utilizar un nombre de host podría ser agregar un enlace a un puerto distinto del puerto 80 para esta IP, por lo que su URL se convertiría en algo así como http://10.0.4.50:8080/sites/companyName.

Otros consejos

Esto no es sólo un problema de IIS, pero Sharepoint relaciona también. Una gran cantidad de referencias en SharePoint se realiza mediante una dirección URL como punto de partida (basta con ver el constructor de SPSite). La url se compara con url conocidas de la base de datos de configuración de SharePoint. (OFR y archivos de bases de datos, etc. en el contenido del sitio).

SharePoint utiliza un sistema llamado asignaciones de acceso alternativas para asignar diferentes direcciones URL a "zonas" de una aplicación web (por defecto, intranet, Internet, ... personalizada definición). Si no encuentra el 'exacta' url, a nivel interno cosas fallará (y sobre todo buscar es muy "sensible Url").

A continuación, viene la parte de IIS en juego: Desde IIS probablemente no tiene otro sitio que se ejecuta en el puerto 80, y sin un hostheader específica (por lo que por defecto es machinename), o con el conjunto hostheader al nombre del equipo, IIS escogerá la solicitud y desde SharePoint está ligado a esta aplicación web, SharePoint intentará procesarla, mira hacia arriba la url, Sharepoint no encuentra la URL y thne "rompe".

El hostheader sin ocurre cuando dejas el campo hostheader vacío cuando se crea una nueva aplicación web de SharePoint.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top