Domanda

Ho creato un ricevitore di eventi di SharePoint, che gli incendi sulla voce Update. Il ricevitore ha bisogno di AfterProperties accesso e ListItem.

Se si accende la ricevente di eventi da un'applicazione Web di SharePoint utilizzando un indirizzo IP ( http://10.0.4.50/sites / ), getta un FileNotFoundException , quando si accede SiteID E WebUrl in SPItemEventProperties. l'applicazione Web all'indirizzo http://10.0.4.50/sites/companyName non è stato trovato . Verificare di aver digitato correttamente l'URL.

Se si accende la ricevente evento utilizzando il nome host, specificato al momento della configurazione del sito Collection http: // computerhostname / siti / companyName . Questo funziona bene, viene lanciata non fa eccezione.

//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>());
È stato utile?

Soluzione

Questo non è necessariamente un problema di SharePoint, ma è più probabile verso il basso per il modo in cui IIS è configurato sull'host. Un particolare sito può essere "legato" a un indirizzo IP e un nome host, e se il nome host non è presente nella HTTP GET inviati dal browser allora IIS restituirà un 404 NOT FOUND.

È possibile verificare ciò utilizzando un browser per vedere se è possibile accedere al sito tramite l'indirizzo IP.

È possibile aggiungere altre associazioni, se necessario, ma non ci può essere solo un "default" vincolante per ogni indirizzo IP, in modo che solo un sito può essere presente alla (nel tuo caso) 10.0.4.50.

Un modo possibile intorno alla situazione in cui più siti sono presenti, ma non è possibile utilizzare un nome host potrebbe essere quella di aggiungere un binding a una porta diversa dalla porta 80 per questo IP, quindi l'URL sarebbe diventato qualcosa di simile http://10.0.4.50:8080/sites/companyName.

Altri suggerimenti

Questo non è solo un problema di IIS, ma Sharepoint legato pure. Un sacco di riferimento in SharePoint viene fatto utilizzando un URL come punto di partenza (basta guardare il costruttore SPSite). L'url è quindi confrontato con noti URL nel database di configurazione di SharePoint. (E file ofr ecc nel database del contenuto del sito).

SharePoint utilizza un sistema chiamato Alternate Mapping di accesso per assegnare diversi URL per un Web "Zone" di applicazione (di default, intranet, internet, ... definizione personalizzata). Se non trova l' 'esatto' Url, internamente roba non riuscirà (e soprattutto di ricerca è molto "URL sensibili").

arriva Poi la parte di IIS in gioco: Dal momento che IIS ha probabilmente nessun altro sito in esecuzione sulla porta 80, e senza un hostheader specifica (in modo che il valore predefinito è machinename), o con l'HostHeader impostato il nome della macchina, IIS sceglierà la richiesta e dal momento che SharePoint è legata a questa webapp, SharePoint cercherà di elaborarlo, guarda in alto l'url, SharePoint non trovare l'URL e thne "pause".

Il no hostheader si verifica quando si lascia il campo HostHeader vuoto quando si crea una nuova applicazione Web in SharePoint.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top