Своя веб-служба (ASMX) в SharePoint
Рассмотрим процесс создания собственной веб-службы.
1. Добавим в проект (в папку layouts) файл текстовый файл, который назовём MyWebSrv.asmx
2. Рядом создадим новый класс MyWebSrv.cs
3. Откроем файл проекта (.csproj) текстовым редактором
Найдем MyWebSrv.cs и сделаем следующие изменения:
<Compile Include="Layouts\MyWebSrv.cs" />
заменим на
<Compile Include="Layouts\MyWebSrv.cs">
<DependentUpon>MyWebSrv.asmx</DependentUpon>
<SubType>Component</SubType>
</Compile>
4. Отредактируем файл MyWebSrv.asmx.
<%@ WebService
Language="C#"
Class="MyWebSrv.DataWebService ,
blog, Version=1.0.0.0, Culture=neutral, PublicKeyToken=10bd20619efdbcaf"
%>
Хороший способ вычисления Assembly Name описан в следующей статье
5. Добавим в проект сборку System.Web.Services
6. Отредактируем класс MyWebSrv.cs
using
System;
using
System.Linq;
using
System.Web.Services;
namespace
MyWebSrv
{
public class DataWebService
: System.Web.Services.WebService
{
[WebMethod]
public string TestingWork()
{
return
"Service works normal";
}
}
}
7. Развернём проект и проверим работоспособность службы http://servername/_layouts/MyWebSrv.asmx
В результате получим работы нашей функции будет возвращено
<?xml version="1.0"
encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">Service works normal</string>
P.S. Первые три пункта можно реализовать альтернативно: создать службу на web forms, а далее его добавить к своему проекту для SharePoint
Если требуется использовать GET запросы к нашей службе, то необходимо в web.config в ноду <system.web> добавить следующее
<webServices>
<protocols>
<add name="HttpGet" />
</protocols>
</webServices>
и к функции можно будет обращаться как http://servername/_layouts/MyWebSrv.asmx/TestingWork
Чтобы ещё в функцию предавать параметры, добавим в необходиму функцию эти параметры
[WebMethod]
public string TestingWork(string
value)
{
return
"Service works normal. Значение: " +value;
}
и будем передавать их следующим образом в адресной строке
http://servername/_layouts/MyWebSrv.asmx/TestingWork?value=test
Комментариев нет:
Отправить комментарий