Je tente d'héberger un service WCF dans SharePoint. J'ai configuré le service pour être compatible avec ASP.NET pour me permettre l'accès à l'information et HttpContext session deAdresses de base WCF dynamiques dans SharePoint
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class MISDataService : IMISDataService { ... }
Et ma configuration ressemble à ceci
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
<service name="MISDataService">
<endpoint address="" binding="webHttpBinding" contract="MISDataViews.IMISDataService" />
</service>
</services>
</system.serviceModel>
Bien que cela me donne accès à la HTTP en cours contexte, le serivce est toujours hébergé sous le domaine racine, soit http://www.mydomain.com/_layouts/MISDataService.svc
.
Dans SharePoint, l'URL en cours d'accès vous fournit des informations contextuelles spécifiques sur le site actuel via la classe SPContext. Donc, avec le service hébergé dans un répertoire virtuel, je voudrais qu'il soit disponible sur plusieurs adresses, par exemple.
http://www.mydomain.com/_layouts/MISDataService.svc
http://www.mydomain.com/sites/site1/_layouts/MISDataService.svc
http://www.mydomain.com/sites/site2/_layouts/MISDataService.svc
afin que le service puisse déterminer les données à retourner en fonction du contexte actuel.
Est-il possible de configurer dynamiquement l'adresse de point de terminaison? Ou est la seule alternative pour héberger le service dans un endroit et ensuite passer le "contexte" à un certain comment?
Vous pouvez mais chaque fois que le service s'exécute il semble être sous la racine du domaine, c'est à dire si vous demandez http://www.mydomain.com/sites/site1/_layouts/MISDataService.svc, le service s'exécute réellement sous le contexte de http://www.mydomain.com/_layouts/MISDataService.svc. Cela pourrait être un obstacle pour SharePoint, mais je ne le pense pas ... –