Best Practice für die Entwicklung eines Webservice in SharePoint?
-
16-10-2019 - |
Frage
Ich habe die folgenden Schritte befolgt, um einen Webservice in SharePoint zu erstellen:
- Erstellt ein neues Projekt mit WSPBuilder.
- Einen "WebService" hinzugefügt (fügen Sie dem Layouts -Ordner einen neuen Webdienst hinzu).
- Machen Sie einen WSBBuilder "Bereitstellen"
- Der Webservice ist über über die Überwachung zugänglich http: //server/_layouts/mywebservice.asmx
Ist das richtig ? Oder sollte ich die beschriebenen Schritte befolgen Msdn Um meine eigenen zu erstellen .wsdl / .Disko Dateien und bereitstellen sie zu /_vti_bin Damit mein Webservice über übergreifbar ist http: //server/_vti_bin/mywebservice.asmx ?
(Hinweis: Die manuellen Schritte von MSDN können mithilfe der automatischen automatisiert werden SPDEV.
Ich habe diesen Blog auch gefunden:http://jamestsai.net/blog/post/where-do-you-deploy-custom-sharepoint-web-service-files-to-%28asmx-discoaspx-andlaspx%29.aspx Dies beschreibt den Unterschied zwischen _layouts und _vti_bin.
Frage
Was ist der beste Weg, um zu folgen?
Und wie kann dies über den Build in VS2008 oder während der Bereitstellung von der WSP automatisiert werden?
Lösung 2
Der Artikel, den Sie am Ende Ihrer Frage verweisen, beantwortet ihn wirklich: Benutzerdefinierte Webdienste sollten in _vti_bin platziert werden.
Normalerweise füge ich sie zunächst zu _layouts hinzu, aber das ist nur in der Lage, meine Erfassungsdateien usw. zu definieren (wie in der von Ihnen erwähnten MSDN -Spezifikation beschrieben).
Ich habe ein einfaches Befehlszeilen -Tool erstellt, das *wsdl.aspx und *disco.aspx SharePoint -kompatible Dateien aus der WebService Assembly (DLL) im Projekt generiert.
Werkzeug kann bei gefunden werden http://wsdlgenerator.codeplex.com .
Wenn Sie dies im Build aus Ihrem SharePoint WebServices -Projekt wie folgt verwenden:
Fügen Sie der folgenden Zeile zur Füge hinzu "Post Build" Veranstaltung:
"$(ProjectDir)Tools\WSDLGenerator.exe" --input "$(TargetPath)" --outputfolder "$(ProjectDir)12\ISAPI" --spwsdl --spdisco
Die WSDL- und Disco -Dateien werden automatisch im ISAPI -Ordner erstellt und platziert.
Andere Tipps
Der Artikel, den Sie am Ende Ihrer Frage verweisen, beantwortet ihn wirklich: Benutzerdefinierte Webdienste sollten in _vti_bin platziert werden.
Normalerweise füge ich sie zunächst zu _layouts hinzu, aber das ist nur in der Lage, meine Erfassungsdateien usw. zu definieren (wie in der von Ihnen erwähnten MSDN -Spezifikation beschrieben).
_vti_bin ist ein virtuelles Verzeichnis, das dem 12/ISAPI -Ordner zugeordnet ist, sodass Sie das Element in Ihrem Lösungsmanifest für das Element bereitstellen können. Siehe ein Beispiel hier