Предположим, что есть ASP.NET сайт, созданный в Visual Studio 2008:
1) Ctrl+Shift+N
2) Project Types: Web, Templates: ASP.NET Web Application
3) F5 - в результате откроется IE, в котором отобразится default.aspx
Например, необходимо к работающему сайту подключить сервис с методом GetTicks, который доступен по адресу /DataProvider.svc/Now и возращает значение DateTime.Now.Ticks в xml-формате.
Чтобы создать сервис в Visual Studio надо:
1) создать новый проект Project Types: Windows, Templates: Class Library
2) в References добавить сборки: System.ServiceModel и System.ServiceModel.Web
3) в проект добавить следующий код:
using System.ServiceModel; |
using System.ServiceModel.Web; |
| public class DataProvider |
| [WebGet(UriTemplate = "/Now/", ResponseFormat = WebMessageFormat.Xml)] |
| return DateTime.Now.Ticks; |
4) Shift+F6 - в результате проект будет откомпилирован и в папке \Debug\bin появится файл Service.dll
Чтобы подключить сервис к сайту надо:
1) в папке с сайтом создать текстовый файл DataProvider.svc со следующим кодом:
| Service="Providers.DataProvider" Factory="System.ServiceModel.Activation.WebServiceHostFactory" %> |
2) файл Service.dll скопировать в папку \bin 3) в файл default.aspx в тег body добавить:
<a href="DataProvider.svc/Now">Now</a> |
4) обновить открытое окно IE; в результате на странице появится ссылка Now; переход по этой ссылке приводит к вызову метода GetTicks и в IE отобразится, например:
<long xmlns="http://schemas.microsoft.com/2003/10/Serialization/">633761956465306263</long> |
Примечание: если сервис был откомпилирован в режиме (Configuration: Debug), затем подключен к сайту и хоть раз вызван, то в момент повторной компиляции получим сообщение: Unexpected error creating debug information file '....PDB' -- '....pdb: The process cannot access the file because it is being used by another process.'
Решение: в проекте сайта открыть файл web.config и сохранить его; в результате сайт будет перезапущен; доступ к .pdb-файл будет открыт.
Комментариев нет:
Отправить комментарий