Bereitstellen von benutzerdefinierten web-service in sharepoint server(2007/2010)?
Laut der MSDN-Website, für die Bereitstellung von benutzerdefinierten web-service, die wir brauchen, um zu erstellen *wsdl.aspx und *in der disco.aspx-Dateien, und setzen Sie Sie mit .asmx zusammen unter _vti_bin Ordner (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\isapi). Und legen Sie die dll unter dem bin-Ordner der root des virtuellen sharepoint-Verzeichnis. Es funktioniert einwandfrei für mich.
Allerdings habe ich auch festgestellt, dass wenn ich setzen .asmx-Datei unter dem virtuellen Stammverzeichnis ohne die Schaffung von denen *wsdl.aspx und *in der disco.aspx-Dateien. Es kann so gut und viel einfacher als in der oben beschriebenen Weise. So Frage ich mich, was die potenziellen Probleme in dieser Art?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ohne die WSDL-und DISCO-Dateien, die Leute' web-service-Kunden/Verbraucher haben möglicherweise eine harte Zeit "entdecken" Ihres service-Vertrag. Wenn das nicht ein Problem für Sie ist, machen Sie sich keine sorgen.
Ich habe mehrere web-services in SharePoint 2007, die wurden einfach verteilt als
http://.../_layouts/mySubFolder/service.asmx
. Es funktioniert! Für SharePoint ist es egal, ob die Präsentationsschicht HTML-oder XML für eine web-service (in beiden Fällen müssen die Sicherheitseinstellungen angewendet werden, angesprochen werden können, die sowohl alshttp://server/_layouts/mySubFolder/service.asmx
undhttp://server/sites/subsite/_layouts/mySubFolder/service.asmx
Dinge, die sind falsch daran
Schon ein Alter post, aber ich dachte, ich möchte hinzufügen, um diese, wie ich glaube nicht, dass die Antworten zu Datum geben Sie die entsprechenden Details auf, warum SharePoint-setup auf diese Weise.
Den Grund, warum Sie webservices bereitstellen, um ISAPI\vti_bin für SharePoint ist, weil es spezifische änderungen für Anfragen an diesen Ordner zu ermöglichen, SharePoint zu bauen, eine präzise Erkennung und WSDL-Datei für den service, basierend auf der aktuellen virtuellen Pfad des Dienstes, nicht den Weg in die IIS-Website.
Genauer wsdisco.aspx und wswsdl.aspx-Anforderungen an das virtuelle Verzeichnis, und rufen die entsprechenden disco.aspx und wsdl.aspx zu generieren, die Entdeckung xml-oder wsdl-xml korrekt auf der Grundlage der aktuellen SharePoint-url.
Wenn Sie einen Dienst hinzufügen Bezug auf Ihr Projekt für http://sharepointsite.com/sitecol/subsite/_vti_bin/lists.asmx den Rahmen für Anforderungen auf, die url wird relevant /sitecol/subsite wie man es erwarten würde.
Allerdings, wenn Sie einen Dienstverweis hinzufügen http://sharepointsite.com/sitecol/subsite/_layouts/MyCustSvc.asmx wird der Kontext fixiert werden http://sharepointsite.com/, weil der Standard-wsdl-generator für ASP.NET nicht bewusst ist, der virtuellen SharePoint-Pfade. In dem Fall ruft zu SPContext im service wird nicht wie erwartet funktionieren.
Es ist eine ausgezeichnete post hier mit Beispielen erklärt dieser:
Wo sehen Sie bereitstellen benutzerdefinierter SharePoint-web-service-Dateien?