Question

Je me laisse avec le déploiement des services sous l'infrastructure SharePoint.

Il arrive que j'ai passé beaucoup de temps à essayer de configurer un service Web SharePoint 2010 sur le dossier ISAPI (_VTI_BIN). Le service fonctionne après un déploiement simple mais je ne trouve pas de moyen d'obtenir les informations des utilisateurs.

J'ai essayé d'y accéder par

  • spcontext.web.currenttuser
  • servicesecurityContext.Current.windowssidity.name
  • fil.currentprincipal.identity.name

    Mais chaque fois qu'il était nul. J'ai essayé d'appliquer un web.config personnalisé sur mon service Web afin que je puisse spécifier l'impersonnation, etc., mais je ne peux pas résoudre le problème.

    J'ai résolu le problème le déploiant sous des mises en page, donc je demande:

    • Quelle est la différence entre les deux dossiers (dans le comportement, je connais déjà l'emplacement et la distribution sur des applications Web)?
    • Pourquoi ISAPI est préféré pour le déploiement de service Web?
    • Y a-t-il une "bonne pratique" que je violais le déploiement sous des mises en page?

      Merci beaucoup

Était-ce utile?

La solution

If you deploy your web service to the layouts directory, you may run into some unexpected behavior with your web service.

ISAPI is the best practice location to deploy any custom web services. This is because this folder is set up to serve your web services via wswsdl and wsdisco.

As explained by James Tsai in his article Where do you deploy custom SharePoint web service files to?:

[The] _vti_bin (12\ISAPI) virtual folder has been configured to serve requests differently compared to other virtual folders in the SharePoint site.

Every web service request made to this directory will be parsed by wswsdl.aspx and wsdisco.aspx files in 12\ISAPI. wswsdl.aspx and wsdisco.aspx files then find correspondence (sic) wsdl and disco information for web service request and output correct contract reference and SOAP address.

...

Without this mechanism (web service request made to any other virtual folder on SharePoint site) the ASP.NET auto-generated disco and wsdl will be used. Since auto-generated disco and wsdl are unaware of the SharePoint service URL virtualization, results returned by web service become unreliable.

Check out the link for a test / proof of concept.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top