Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Создание веб-службы в ASPNET.





Лабораторная работа №6

 

Цель работы: знакомство с инструментом разработки ASP.NET веб-служб в среде Microsoft Visual Studio.

Рассмотрим в качестве примера создание с помощью ASP.NET веб-службы, которая переводит любое целое десятичное число в один из форматов по выбору: двоичный, восьмеричный, десятичный.

  1. Создайте новый проект (тип: ASP Web Service), например, под именем ASPNETCalcWebService. В результате будет автоматически сгенерирован файл Service1.asmx.cs.

Программная логика веб-службы будет реализована на языке C# в CodeBehind файле Service1.asmx.cs:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Web;

using System.Web.Services;

using System.Web.Services.Protocols;

 

namespace ASPNETCalcWebService

{

/// <summary>

/// Summary description for Service1

/// </summary>

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[ToolboxItem(false)]

public class Service1: System.Web.Services.WebService

{

[WebMethod]

public string HelloWorld()

{

return "Hello World";

}

}

}

  1. Для реализации логики веб-службы в этом файле замените в файле Service1.asmx.cs метод HelloWorld() на 3 новых метода, при помощи которых будут выполняться все преобразования:

3. using System;

4. using System.Collections;

5. using System.ComponentModel;

6. using System.Data;

7. using System.Web;

8. using System.Web.Services;

9. using System.Web.Services.Protocols;

10.

11. namespace ASPNETCalcWebService

12. {

13. /// <summary>

14. /// Summary description for Service1

15. /// </summary>

16. [WebService(Namespace = "http://tempuri.org/")]

17. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

18. [ToolboxItem(false)]

19. public class Service1: System.Web.Services.WebService

20. {

21. //Uncomment the following line if using designed components

22. //InitializeComponent();

23. }

24.

25. // Преобразование в двоичную систему счисления

26.

27. [WebMethod]

28. public string Binary(int x) {

29. return Convert.ToString(x, 2);

30. }

31.

32. // Преобразование в восьмеричную систему счисления

33.

34. [WebMethod]

35. public string Octal(int x)

36. {

37. return Convert.ToString(x, 8);

38. }

39.

40. // Преобразование в шестнадцатиричную систему счисления

41.

42. [WebMethod]

43. public string Hexadecimal(int x)

44. {

45. return Convert.ToString(x, 16);

46. }

}

Атрибут WebMethod в этом файле указывает на то, что описываемый метод должен быть доступен по протоколу HTTP для пользователей.

Откомпилируйте и запустите проекта. В результате в браузере должна следующая страница

 

Активируйте гиперссылку "Описание службы". В окне браузера должно появиться описание веб-службы в формате WSDL

47. <?xml version="1.0" encoding="utf-8"?>

48. <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

49. xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"

50. xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"

51. xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"

52. xmlns:tns="http://tempuri.org/"

53. xmlns:s="http://www.w3.org/2001/XMLSchema"

54. xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"

55. xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"

56. targetNamespace="http://tempuri.org/"

57. xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

58. <wsdl:types>

59. <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">

60. <s:element name="Binary">

61. <s:complexType>

62. <s:sequence>

63. <s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" />

64. </s:sequence>

65. </s:complexType>

66. </s:element>

67. <s:element name="BinaryResponse">

68. <s:complexType>

69. <s:sequence>

70. <s:element minOccurs="0" maxOccurs="1" name="BinaryResult" type="s:string" />

71. </s:sequence>

72. </s:complexType>

73. </s:element>


74. <s:element name="Octal">

75. <s:complexType>

76. <s:sequence>

77. <s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" />

78. </s:sequence>

79. </s:complexType>

80. </s:element>

81. <s:element name="OctalResponse">

82. <s:complexType>

83. <s:sequence>

84. <s:element minOccurs="0" maxOccurs="1" name="OctalResult" type="s:string" />

85. </s:sequence>

86. </s:complexType>

87. </s:element>

88. <s:element name="Hexadecimal">

89. <s:complexType>

90. <s:sequence>

91. <s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" />

92. </s:sequence>

93. </s:complexType>

94. </s:element>

95. <s:element name="HexadecimalResponse">

96. <s:complexType>

97. <s:sequence>

98. <s:element minOccurs="0" maxOccurs="1" name="HexadecimalResult" type="s:string" />

99. </s:sequence>

100. </s:complexType>

101. </s:element>

102. </s:schema>

103. </wsdl:types>

104. <wsdl:message name="BinarySoapIn">

105. <wsdl:part name="parameters" element="tns:Binary" />

106. </wsdl:message>

107. <wsdl:message name="BinarySoapOut">

108. <wsdl:part name="parameters" element="tns:BinaryResponse" />

109. </wsdl:message>

110. <wsdl:message name="OctalSoapIn">

111. <wsdl:part name="parameters" element="tns:Octal" />

112. </wsdl:message>

113. <wsdl:message name="OctalSoapOut">

114. <wsdl:part name="parameters" element="tns:OctalResponse" />

115. </wsdl:message>

116. <wsdl:message name="HexadecimalSoapIn">

117. <wsdl:part name="parameters" element="tns:Hexadecimal" />

118. </wsdl:message>

119. <wsdl:message name="HexadecimalSoapOut">

120. <wsdl:part name="parameters" element="tns:HexadecimalResponse" />

121. </wsdl:message>

122. <wsdl:portType name="ServiceSoap">

123. <wsdl:operation name="Binary">

124. <wsdl:input message="tns:BinarySoapIn" />

125. <wsdl:output message="tns:BinarySoapOut" />

126. </wsdl:operation>

127. <wsdl:operation name="Octal">

128. <wsdl:input message="tns:OctalSoapIn" />

129. <wsdl:output message="tns:OctalSoapOut" />

130. </wsdl:operation>

131. <wsdl:operation name="Hexadecimal">

132. <wsdl:input message="tns:HexadecimalSoapIn" />

133. <wsdl:output message="tns:HexadecimalSoapOut" />

134. </wsdl:operation>

135. </wsdl:portType>

136. <wsdl:binding name="ServiceSoap" type="tns:ServiceSoap">


137. <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />

138. <wsdl:operation name="Binary">

139. <soap:operation soapAction="http://tempuri.org/Binary" style="document" />

140. <wsdl:input>

141. <soap:body use="literal" />

142. </wsdl:input>

143. <wsdl:output>

144. <soap:body use="literal" />

145. </wsdl:output>

146. </wsdl:operation>

147. <wsdl:operation name="Octal">

148. <soap:operation soapAction="http://tempuri.org/Octal" style="document" />

149. <wsdl:input>

150. <soap:body use="literal" />

151. </wsdl:input>

152. <wsdl:output>

153. <soap:body use="literal" />

154. </wsdl:output>

155. </wsdl:operation>

156. <wsdl:operation name="Hexadecimal">

157. <soap:operation soapAction="http://tempuri.org/Hexadecimal" style="document" />

158. <wsdl:input>

159. <soap:body use="literal" />

160. </wsdl:input>

161. <wsdl:output>

162. <soap:body use="literal" />

163. </wsdl:output>

164. </wsdl:operation>

165. </wsdl:binding>

166. <wsdl:binding name="ServiceSoap12" type="tns:ServiceSoap">

167. <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />

168. <wsdl:operation name="Binary">

169. <soap12:operation soapAction="http://tempuri.org/Binary" style="document" />

170. <wsdl:input>

171. <soap12:body use="literal" />

172. </wsdl:input>

173. <wsdl:output>

174. <soap12:body use="literal" />

175. </wsdl:output>

176. </wsdl:operation>

177. <wsdl:operation name="Octal">

178. <soap12:operation soapAction="http://tempuri.org/Octal" style="document" />

179. <wsdl:input>

180. <soap12:body use="literal" />

181. </wsdl:input>

182. <wsdl:output>

183. <soap12:body use="literal" />

184. </wsdl:output>

185. </wsdl:operation>

186. <wsdl:operation name="Hexadecimal">

187. <soap12:operation soapAction="http://tempuri.org/Hexadecimal" style="document" />

188. <wsdl:input>

189. <soap12:body use="literal" />

190. </wsdl:input>

191. <wsdl:output>

192. <soap12:body use="literal" />

193. </wsdl:output>

194. </wsdl:operation>

195. </wsdl:binding>

196. <wsdl:service name="Service">


197. <wsdl:port name="ServiceSoap" binding="tns:ServiceSoap">

198. <soap:address location="http://localhost/NumConvert/Service.asmx" />

199. </wsdl:port>

200. <wsdl:port name="ServiceSoap12" binding="tns:ServiceSoap12">

201. <soap12:address location="http://localhost/NumConvert/Service.asmx" />

202. </wsdl:port>

203. </wsdl:service>

</wsdl:definitions>

Если необходимо сообщить более подробную информацию для пользователей по каждому из доступных в этой веб-службе методов достаточно будет добавить параметр Description в атрибуте WebMethod, например:

[WebMethod (Description = "Перевод целого числа в двоичную систему счисления")]

public string Binary(int x)

{

return Convert.ToString(x, 2);

}

В результате в браузере будет получена следующая страница:

 

Выберите метод Binary. При этом должна загрузиться веб-страница вида:

 

В результате работы веб-службы (после ввода числа и нажатия кнопки "Запуск") будет создана загрузится следующая страница:

 

Задание на лабораторную работу:

Создайте ASP.NET веб-службу, поддерживающую три метода, возвращающие соответственно название текущего дня недели, номер текущего дня в месяце, номер текущего дня в году.

Для получения необходимых данных на стороне сервера можно использовать свойства и методы:

Label1.Text = DateTime.Now.DayOfWeek.ToString();

Label1.Text = DateTime.Now.Day.ToString();

Label1.Text = DateTime.Now.DayOfYear.ToString();

 







Date: 2016-07-05; view: 507; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.038 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию