Лучшая практика для разработки веб -сервиса в SharePoint?
-
16-10-2019 - |
Вопрос
Я выполнил следующие шаги, чтобы создать веб -сервис в SharePoint:
- Создал новый проект с использованием WSPBuilder.
- Добавлен «Веб -сервис» (добавьте новую веб -сервис в папку Mayouts)
- Делишься "развернуть"
- Веб -сервис доступен через http: //server/_layouts/mywebservice.asmx
Это правильно ? Или я должен выполнить шаги, описанные на MSDN Чтобы создать свой собственный .wsdl / .дискотека файлы и развернуть их в /_vti_bin Чтобы сделать мой веб -сервис доступным через http: //server/_vti_bin/mywebservice.asmx ?
(Примечание: ручные шаги от MSDN могут быть автоматизированы с помощью Spdev.
Я также нашел этот блог:http://jamestsai.net/blog/post/where-do-you-deploy-custom-sharepoint-web-service-files-to-%28asmx-discoaspx-and-wsdlaspx%29.aspx который описывает разницу между _layouts и _vti_bin.
Вопрос
Каким лучше всего следовать?
И как это может быть автоматизировано через сборку в VS2008 или во время развертывания из WSP?
Решение 2
Статья, которую вы ссылаетесь в конце вашего вопроса, действительно отвечает на нее: пользовательские веб -сервисы должны быть размещены в _vti_bin.
Я обычно начинаю с добавления их в _layouts, но это только для того, чтобы иметь возможность определить мои файлы обнаружения и т. Д. (Как описано в упомянутой вами спецификации MSDN).
Я создал простой инструмент командной линии, который генерирует совместимые с файлами совместимых с совместимыми с файлами WSDL.ASPX и *DISCO.ASPX из сборки веб -сервиса (DLL) в проекте.
Инструмент можно найти в http://wsdlgenerator.codeplex.com .
При использовании этого в сборке из вашего проекта SharePoint Webservices, как это:
Добавить следующую строку в "После сборки" мероприятие:
"$(ProjectDir)Tools\WSDLGenerator.exe" --input "$(TargetPath)" --outputfolder "$(ProjectDir)12\ISAPI" --spwsdl --spdisco
Файлы WSDL и диско создаются автоматически и размещаются в папке ISAPI.
Другие советы
Статья, которую вы ссылаетесь в конце вашего вопроса, действительно отвечает на нее: пользовательские веб -сервисы должны быть размещены в _vti_bin.
Я обычно начинаю с добавления их в _layouts, но это только для того, чтобы иметь возможность определить мои файлы обнаружения и т. Д. (Как описано в упомянутой вами спецификации MSDN).
_VTI_BIN - это виртуальный каталог, отображаемый в папке 12/ISAPI, поэтому вы можете развернуть этот элемент в своем решении. См. Пример здесь