XML ვებ სერვისები. ტექნოლოგიის მიმოხილვა

თემის სათაური ნამდვილად კითხვის ნიშანია, რადგან მე თვითონ არ ვიცი რა არის და პირველად ვეცდები ამ სტატიის ფარგლებში ვიმუშაო. ერთადერთი, რისი გარანტიაც შემიძლია, არის ის, რომ ქვემოთ მოცემული კოდი იმუშავებს, თუმცა, ჩემი ფრაზები იქნება მხოლოდ ვარაუდები და ვარაუდები იმის შესახებ, თუ როგორ მესმის ეს ყველაფერი. ასე რომ წავიდეთ...

შესავალი

ჩვენ უნდა დავიწყოთ იმით, რისთვის შეიქმნა ვებ სერვისების კონცეფცია. ამ კონცეფციის გაჩენის დროისთვის მსოფლიოში უკვე არსებობდა ტექნოლოგიები, რომლებიც საშუალებას აძლევდნენ აპლიკაციებს ურთიერთქმედონ მანძილზე, სადაც ერთ პროგრამას შეეძლო რაიმე მეთოდის გამოძახება სხვა პროგრამაში, რომელიც შემდეგ შეიძლება გაშვებულიყო სხვა ქალაქში ან თუნდაც ქვეყანაში მდებარე კომპიუტერზე. ეს ყველაფერი შემოკლებით არის RPC (Remote Procedure Calling - დისტანციური პროცედურის ზარი). მაგალითები მოიცავს CORBA ტექნოლოგიებს, ხოლო ჯავისთვის - RMI (Remote Method Invoking - დისტანციური მეთოდის გამოძახება). და მათში ყველაფერი კარგად ჩანს, განსაკუთრებით CORBA-ში, რადგან შეგიძლიათ მასთან მუშაობა ნებისმიერ პროგრამირების ენაზე, მაგრამ რაღაც მაინც აკლდა. მე მჯერა, რომ CORBA-ს მინუსი არის ის, რომ ის მუშაობს მისი ზოგიერთი ქსელის პროტოკოლით, ნაცვლად მარტივი HTTP-ის, რომელიც გადაიჭრება ნებისმიერ ფაიერვოლში. ვებ სერვისის იდეა იყო ისეთი RPC-ის შექმნა, რომელიც გადაიტანებოდა HTTP პაკეტებში. ასე დაიწყო სტანდარტის შემუშავება. რა არის ამ სტანდარტის ძირითადი ცნებები:
  1. საპონი. დისტანციური პროცედურის გამოძახებამდე, თქვენ უნდა აღწეროთ ეს ზარი SOAP ფორმატის XML ფაილში. SOAP არის მხოლოდ ერთი მრავალი XML მარკირება, რომელიც გამოიყენება ვებ სერვისებში. ყველაფერი, რისი გაგზავნა გვსურს სადმე HTTP-ის საშუალებით, ჯერ გადაიქცევა XML SOAP-ის აღწერილობაში, შემდეგ გადადის HTTP პაკეტში და იგზავნება სხვა კომპიუტერზე ქსელში TCP/IP-ის საშუალებით.
  2. WSDL. არის ვებ სერვისი, ე.ი. პროგრამა, რომლის მეთოდები შეიძლება დისტანციურად გამოიძახოთ. მაგრამ სტანდარტი მოითხოვს, რომ აღწერილობა დაერთოს ამ პროგრამას, რომელშიც ნათქვამია, რომ ”დიახ, თქვენ არ შემცდარხართ - ეს ნამდვილად ვებ სერვისია და შეგიძლიათ მისგან დარეკოთ ამა თუ იმ მეთოდებს”. ეს აღწერა წარმოდგენილია სხვა XML ფაილით, რომელსაც აქვს განსხვავებული ფორმატი, კერძოდ WSDL. იმათ. WSDL არის მხოლოდ XML ფაილი, რომელიც აღწერს ვებ სერვისს და სხვა არაფერი.
რატომ ასე მოკლედ მეკითხები? უფრო დაწვრილებით არ შეგიძლია? ალბათ შეგიძლიათ, მაგრამ ამისთვის მოგიწევთ მიმართოთ წიგნებს, როგორიცაა Mashnin T. "Java Web Services". იქ, პირველი 200 გვერდისთვის, არის SOAP და WSDL სტანდარტების თითოეული ტეგის დეტალური აღწერა. ღირს თუ არა? ჩემი აზრით არა იმიტომ ეს ყველაფერი ავტომატურად იქმნება Java-ში და თქვენ მხოლოდ უნდა დაწეროთ იმ მეთოდების შინაარსი, რომლებიც დისტანციურად უნდა იყოს გამოძახებული. ასე რომ, ჯავაში არის ისეთი API, როგორიცაა JAX-RPC. თუ ვინმემ არ იცის, როდის ამბობს, რომ Java-ს აქვს ასეთი და ასეთი API, ეს ნიშნავს, რომ არის პაკეტი კლასების კომპლექტით, რომელიც შეიცავს მოცემულ ტექნოლოგიას. JAX-RPC ვითარდებოდა ვერსიიდან ვერსიამდე დიდი ხნის განმავლობაში და საბოლოოდ გადაიქცა JAX-WS-ში. WS აშკარად ნიშნავს WebService-ს და შეიძლება იფიქროთ, რომ ეს არის RPC-ის უბრალო გადარქმევა პოპულარულ სიტყვად ამ დღეებში. ეს ასე არ არის, რადგან ახლა ვებ სერვისები ჩამოშორდა თავდაპირველ იდეას და საშუალებას იძლევა არა მხოლოდ დისტანციური მეთოდების გამოძახება, არამედ უბრალოდ დოკუმენტური შეტყობინებების გაგზავნა SOAP ფორმატში. რატომ არის ეს საჭირო, ჯერ არ ვიცი, ნაკლებად სავარაუდოა, რომ პასუხი აქ იქნება "ყოველ შემთხვევაში, მოულოდნელად საჭიროა". მე თვითონ მინდა ვისწავლო უფრო გამოცდილი ამხანაგებისგან. და ბოლოს, JAX-RS გამოჩნდა ეგრეთ წოდებული RESTful ვებ სერვისებისთვის, მაგრამ ეს ცალკე სტატიის თემაა. ეს შესავალი შეიძლება დასრულდეს, რადგან. შემდეგ ჩვენ ვისწავლით თუ როგორ ვიმუშაოთ JAX-WS-თან.

ზოგადი მიდგომა

ვებ სერვისებს ყოველთვის ჰყავს კლიენტი და სერვერი. სერვერი არის ჩვენი ვებ სერვისი და მას ზოგჯერ უწოდებენ საბოლოო წერტილს (როგორიცაა ბოლო წერტილი, სადაც აღწევს SOAP შეტყობინებები კლიენტიდან). ჩვენ უნდა გავაკეთოთ შემდეგი:
  1. აღწერეთ ჩვენი ვებ სერვისის ინტერფეისი
  2. განახორციელეთ ეს ინტერფეისი
  3. დაიწყეთ ჩვენი ვებ სერვისი
  4. დაწერეთ კლიენტი და დისტანციურად დარეკეთ ვებ სერვისის სასურველ მეთოდზე
თქვენ შეგიძლიათ დაიწყოთ ვებ სერვისი სხვადასხვა გზით: ან აღწერეთ კლასი ძირითადი მეთოდით და გაუშვით ვებ სერვისი პირდაპირ სერვერის სახით, ან განათავსეთ ის სერვერზე, როგორიცაა Tomcat ან სხვა. მეორე შემთხვევაში, ჩვენ თვითონ არ ვიწყებთ ახალ სერვერს და არ ვხსნით სხვა პორტს კომპიუტერზე, არამედ უბრალოდ ვუთხარით Tomcat servlet კონტეინერს, რომ „ჩვენ დავწერეთ ვებ სერვისის კლასები აქ, გთხოვთ გამოაქვეყნოთ ისინი, რათა ყველამ, ვინც დაგიკავშირდებათ, გამოიყენოს. ვებ სერვისი. მიუხედავად იმისა, თუ როგორ ამოქმედდება ვებ სერვისი, ჩვენ გვექნება იგივე კლიენტი.

სერვერი

გაუშვით IDEA და შექმენით ახალი პროექტი შექმენით ახალი პროექტი. მიუთითეთ სახელი hellowebserviceდა დააჭირეთ ღილაკს შემდეგი, შემდეგ ღილაკი დასრულება. საქაღალდეში srcშექმენით პაკეტი en.javarush.ws. ამ პაკეტში ჩვენ შევქმნით HelloWebService ინტერფეისს: პაკეტი ru. ჯავარუშ. ws; // ეს არის ანოტაციები, ე.ი. ჩვენი კლასებისა და მეთოდების აღსანიშნავად, // რაც შეეხება ვებ სერვისის ტექნოლოგიას javax-ის იმპორტი. jws. ვებმეთოდი; javax-ის იმპორტი. jws. ვებსერვისი; javax-ის იმპორტი. jws. საპონი. საპნის შეკვრა; // ჩვენ ვამბობთ, რომ ჩვენი ინტერფეისი იმუშავებს როგორც ვებ სერვისი@WebService // ამბობენ, რომ ვებ სერვისი გამოყენებული იქნება მეთოდების გამოსაძახებლად@SOAPBinding(style = SOAPBinding.Style.RPC) საჯარო ინტერფეისი HelloWebService( // ამბობენ, რომ ეს მეთოდი შეიძლება დისტანციურად დარეკოთ@WebMethod საჯარო სტრიქონი getHelloString(სტრიქონის სახელი) ; ) ამ კოდში WebService და WebMethod კლასები არის ეგრეთ წოდებული ანოტაციები და არაფერს აკეთებენ გარდა ჩვენი ინტერფეისის და მისი მეთოდის ვებ სერვისის მონიშვნისა. იგივე ეხება SOAPBinding კლასს. ერთადერთი განსხვავება ისაა, რომ SOAPBinding არის ანოტაცია პარამეტრებით. ამ შემთხვევაში, სტილის პარამეტრი გამოიყენება მნიშვნელობით, რომელიც ამბობს, რომ ვებ სერვისი იმუშავებს არა დოკუმენტური შეტყობინებების საშუალებით, არამედ როგორც კლასიკური RPC, ე.ი. მეთოდის დასაძახებლად. მოდით განვახორციელოთ ჩვენი ინტერფეისის ლოგიკა და შევქმნათ HelloWebServiceImpl კლასი ჩვენს პაკეტში. სხვათა შორის, აღვნიშნავ, რომ კლასი, რომელიც მთავრდება Impl-ით, არის კონვენცია ჯავაში, რომლის მიხედვითაც ინტერფეისების განხორციელება ასეა დანიშნული (Impl - სიტყვიდან განხორციელება, ე.ი. განხორციელება). ეს არ არის მოთხოვნა და თავისუფლად შეგიძლიათ დაასახელოთ კლასს რაც გინდათ, მაგრამ კარგი მანერები ამას მოითხოვს: პაკეტი ru. ჯავარუშ. ws; // იგივე ანოტაცია, როგორც ინტერფეისის აღწერილობისთვის, javax-ის იმპორტი. jws. ვებსერვისი; // მაგრამ აქ ის გამოიყენება endpointInterface პარამეტრით, // ჩვენი ვებ სერვისის ინტერფეისის კლასის სრული სახელის მითითებით@WebService(endpointInterface= "en.javarush.ws.HelloWebService") საჯარო კლასი HelloWebServiceImpl ახორციელებს HelloWebService ( @Override public String getHelloString (სტრიქონის სახელი) ( // უბრალოდ მიუბრუნდი მისალმებასდაბრუნება "გამარჯობა, " + სახელი + "!" ; ) ) გავუშვათ ჩვენი ვებ სერვისი, როგორც დამოუკიდებელი სერვერი, ე.ი. Tomcat-ის და აპლიკაციის სერვერების მონაწილეობის გარეშე (ეს ცალკე განხილვის თემაა). ამისათვის საქაღალდეში არსებული პროექტის სტრუქტურაში srcშევქმნათ პაკეტი ru.javarush.endpoint და მასში შევქმნით HelloWebServicePublisher კლასს მეთოდით main:pack ru. ჯავარუშ. საბოლოო წერტილი; // კლასი ვებ სერვერის დასაწყებად ვებ სერვისებით javax-ის იმპორტი. xml. ws. საბოლოო წერტილი; // ჩვენი ვებ სერვისის კლასიიმპორტი en. ჯავარუშ. ws. hellowebserviceimpl; საჯარო კლასი HelloWebServicePublisher (public static void main (String. . . args)( // ვებ სერვერის გაშვება პორტზე 1986 წ // და პირველ არგუმენტში მითითებულ მისამართზე, // დაიწყეთ მეორე არგუმენტში გადაცემული ვებ სერვისისაბოლოო წერტილი. გამოქვეყნება ( "http://localhost:1986/wss/hello"ახალი HelloWebServiceImpl ()); ) ) ახლა გაუშვით ეს კლასი დაწკაპუნებით Shift + F10. არაფერი გამოჩნდება კონსოლში, მაგრამ სერვერი მუშაობს. ამის გადამოწმება შეგიძლიათ თქვენს ბრაუზერში http://localhost:1986/wss/hello?wsdl აკრეფით. გახსნილი გვერდი, ერთის მხრივ, ადასტურებს, რომ ჩვენ გვაქვს ვებ სერვერი (http://) გაშვებული 1986 წლის პორტზე ჩვენს კომპიუტერზე (localhost) და, მეორე მხრივ, აჩვენებს ჩვენი ვებ სერვისის WSDL აღწერას. თუ აპლიკაციას შეწყვეტთ, აღწერა მიუწვდომელი გახდება, ისევე როგორც თავად ვებ სერვისი, ამიტომ ჩვენ ამას არ გავაკეთებთ, არამედ გადავალთ კლიენტის წერაზე.

დამკვეთი

პროექტის საქაღალდეში srcშევქმნათ პაკეტი ru.javarush.client და მასში HelloWebServiceClient კლასი ძირითადი მეთოდით: პაკეტი ru. ჯავარუშ. კლიენტი; // საჭიროა wsdl აღწერილობის მისაღებად და მისი მეშვეობით // მიაღწიეთ თავად ვებ სერვისსჯავას იმპორტი. ბადე. URL; // ასეთი გამონაკლისი მოხდება URL ობიექტთან მუშაობისასჯავას იმპორტი. ბადე. მალფორმირებულიURLEგამონაკლისი; // კლასები xml-ის გასაანალიზებლად wsdl აღწერილობით // და მიაღწიეთ მასში სერვისის ტეგს javax-ის იმპორტი. xml. სახელთა სივრცე. Qname; javax-ის იმპორტი. xml. ws. მომსახურება; // ჩვენი ვებ სერვისის ინტერფეისი (მეტი გვჭირდება)იმპორტი en. ჯავარუშ. ws. hellowebservice; საჯარო კლასი HelloWebServiceClient( public static void main(String args) ისვრის MalformedURLException( // შექმენით ბმული wsdl აღწერილობაში URL url = ახალი URL( "http://localhost:1986/wss/hello?wsdl") ; // ჩვენ ვუყურებთ შემდეგი კონსტრუქტორის პარამეტრებს პირველივე WSDL აღწერილობის ტეგში - განმარტებები // შეხედეთ 1 არგუმენტს targetNamespace ატრიბუტში // მე-2 არგუმენტი იხილეთ სახელის ატრიბუტში QName qname = new QName ("http://ws.site/" , "HelloWebServiceImplService" ); // ახლა ჩვენ შეგვიძლია მივაღწიოთ სერვისის ტეგს wsdl აღწერილობაში,სერვის სერვისი = სერვისი. შექმნა (url, qname) ; // და შემდეგ მასში ჩადგმულ პორტის ტეგს, ასე რომ // მიიღეთ მითითება ჩვენგან დაშორებულ ვებ სერვისის ობიექტზე HelloWebService გამარჯობა = სერვისი. getPort(HelloWebService.class); // ჰორი! ახლა შეგიძლიათ დარეკოთ დისტანციური მეთოდითსისტემა. გარეთ. println(გამარჯობა. getHelloString("JavaRush") ); ) ) მე ვაძლევდი მაქსიმუმ კომენტარს ჩამონათვალში არსებულ კოდზე. დასამატებელი არაფერი მაქვს, ასე რომ გაუშვით (Shift + F10). ჩვენ უნდა ვნახოთ ტექსტი კონსოლში: გამარჯობა, JavaRush! თუ არ გინახავთ, მაშინ ალბათ დაგავიწყდათ ვებ სერვისის გაშვება.

დასკვნა

ამ თემაში წარმოდგენილი იყო მოკლე ექსკურსია ვებ სერვისებში. კიდევ ერთხელ, ბევრი რამ, რაც დავწერე, არის ჩემი ვარაუდი იმის შესახებ, თუ როგორ მუშაობს და, შესაბამისად, არ უნდა ვენდო ძალიან. მადლობელი ვიქნები, თუ მცოდნე ხალხი გამომისწორებს, რადგან მერე რაღაცას ვისწავლი. UPD.

ვებ სერვისი (სერვისი) არის პროგრამა, რომელიც აწყობს საიტებს შორის ურთიერთქმედებას. ინფორმაცია ერთი პორტალიდან მეორეზე გადადის.

მაგალითად, არის ავიაკომპანია. მას აქვს მრავალი ფრენა, შესაბამისად, ბევრი ბილეთი. ის გადასცემს ინფორმაციას ვებ სერვისის საშუალებით ტურის სამოგზაურო აგრეგატორ საიტზე. მომხმარებელი, რომელიც შედის აგრეგატორში, შეძლებს ამ ავიაკომპანიის ბილეთების შეძენას სწორედ იქ.

ვებ სერვისების კიდევ ერთი მაგალითია ამინდის თვალთვალის საიტი, რომელიც გვაწვდის ინფორმაციას ამინდის პირობების შესახებ კონკრეტულ ქალაქში ან მთლიანად ქვეყანაში. ეს ინფორმაცია ასევე ხშირად გამოიყენება მესამე მხარის მიერ.

ინფორმაცია ინტერნეტში მრავალფეროვანია. საიტები იმართება სხვადასხვა სისტემებით. გამოიყენება სხვადასხვა გადაცემის და დაშიფვრის პროტოკოლები. ვებ სერვისები ამარტივებს ინფორმაციის გაცვლას სხვადასხვა საიტებს შორის.

ვებ სერვისების არქიტექტურა და პროტოკოლები

თქვენ შეგიძლიათ განსაზღვროთ 3 შემთხვევა, რომლებიც ურთიერთქმედებენ ერთმანეთთან: კატალოგი, კონტრაქტორი და მომხმარებელი. სერვისის შექმნის შემდეგ შემსრულებელი აღრიცხავს მას კატალოგში და მომხმარებელი იქ პოულობს მომსახურებას.

მონაცემთა გაცვლის მექანიზმი ჩამოყალიბებულია ვებ სერვისების აღწერაში. ეს არის სპეციფიკაცია, რომელიც მოიცავს გადაგზავნის ფორმატებს, შინაარსის ტიპებს, სატრანსპორტო პროტოკოლებს, რომლებიც გამოიყენება მომხმარებლისა და მომსახურების გადამზიდველს შორის ინფორმაციის გაცვლისას.

დღეს, რამდენიმე ტექნოლოგია ყველაზე ხშირად გამოიყენება სხვადასხვა ვებ სერვისების განსახორციელებლად:

  1. TCP/IP არის პროტოკოლი, რომელიც გასაგებია თითქმის ნებისმიერი ქსელური მოწყობილობისთვის, დაწყებული მთავარი მოწყობილობიდან პორტატულ მოწყობილობებამდე და PDA-მდე.
  2. HTML არის უნივერსალური მარკირების ენა, რომელიც გამოიყენება კონტენტის სამომხმარებლო მოწყობილობებზე საჩვენებლად.
  3. XML არის უნივერსალური ინსტრუმენტი ყველა სახის მონაცემის დასამუშავებლად. მის საფუძველზე შეიძლება მუშაობდეს ინფორმაციის გაცვლის სხვა პროტოკოლებიც: SOAP და WSDL.
  4. UDDI არის აღიარების, ინტეგრაციისა და აღწერის უნივერსალური წყარო. ის მუშაობს, როგორც წესი, კერძო ქსელებში და ჯერ ვერ იპოვა საკმარისი განაწილება.

წარმოდგენილი ტექნოლოგიების მრავალფეროვნება არის ვებ სერვისების გააზრების საფუძველი. ისინი მუშაობენ სტანდარტულ ტექნოლოგიებზე, რომლებიც დამოუკიდებელნი არიან აპლიკაციების მომწოდებლებისა და სხვა ქსელის რესურსებისგან. შეიძლება გამოყენებულ იქნას ნებისმიერ ოპერაციულ სისტემაში, აპლიკაციის სერვერებზე, პროგრამირების ენებზე და ა.შ.

უპირატესობები

  • პროგრამული უზრუნველყოფის კომპონენტების ურთიერთქმედების აუცილებელი პირობების შექმნა, მიუხედავად პლატფორმისა.
  • ვებ სერვისები დაფუძნებულია ღია სტანდარტულ პროტოკოლებზე. XML-ის დანერგვის საშუალებით ადვილია ვებ სერვისების შექმნა და კონფიგურაცია.
  • HTTP-ის გამოყენება უზრუნველყოფს სისტემების ურთიერთქმედების გარანტიას ქსელში წვდომის საშუალებით.

ხარვეზები

  • დაბალი შესრულება და დიდი ტრაფიკი, RMI, CORBA, DCOM სისტემებთან შედარებით, ტექსტის კონტექსტში XML შეტყობინებების გამოყენების გამო.
  • უსაფრთხოების დონე. ყველა თანამედროვე ვებ სერვისმა უნდა განახორციელოს კოდირება და მოითხოვოს მომხმარებლის ავტორიზაცია. საკმარისია თუ არა HTTPS აქ თუ საჭიროა უფრო საიმედო პროტოკოლები, როგორიცაა XML დაშიფვრა, SAML და ა.შ., გადაწყდება განვითარების პროცესში.

ვებ სერვისის ამოცანები

ვებ სერვისების გამოყენება შესაძლებელია ბევრ სფეროში.

B2B ტრანზაქციები

პროცესების ინტეგრაცია ხდება ერთდროულად, ხალხის მონაწილეობის გარეშე. მაგალითად, ონლაინ მაღაზიის კატალოგის განახლება ახალი პროდუქტებით. ისინი მიჰყავთ საწყობში, ხოლო მაღაზიის მეპატრონე აღნიშნავს ჩამოსვლას მონაცემთა ბაზაში. ინფორმაცია ავტომატურად გადადის ონლაინ მაღაზიაში. მყიდველი კი, ნაცვლად იმისა, რომ პროდუქტის ბარათზე მონიშნოს „ამოწურული“, ხედავს მის რაოდენობას.

საწარმოს სერვისების ინტეგრაცია

თუ კომპანია იყენებს კორპორატიულ პროგრამებს, მაშინ ვებ სერვისი დაეხმარება მათ ერთობლივ მუშაობას.

კლიენტ-სერვერის სისტემის შექმნა

სერვისები გამოიყენება კლიენტისა და სერვერის მუშაობის მოსარგებად. ეს მოგცემთ შემდეგ სარგებელს:

  • თქვენ შეგიძლიათ გაყიდოთ არა თავად პროგრამული უზრუნველყოფა, არამედ მიიღოთ ფასიანი წვდომა ვებ სერვისზე;
  • უფრო ადვილია პრობლემების გადაჭრა მესამე მხარის პროგრამული უზრუნველყოფის გამოყენებით;
  • უფრო ადვილია სერვერის შინაარსზე და მასალებზე წვდომის ორგანიზება.

ვებ სერვისი არის აპლიკაცია, რომელიც ამარტივებს რესურსებთან ურთიერთქმედების ტექნიკურ კონფიგურაციას.

დღეს WEB სერვისები თითქმის ყველგან გამოიყენება – გვაწვდიან ინფორმაციას თვითმფრინავებისა და მატარებლების ფრენების, გაცვლითი კურსისა და ამინდის შესახებ. გასაკვირი არ არის, რომ 1C-ს ასევე აქვს შესაძლებლობა შექმნას საკუთარი WEB სერვისები, რაც საშუალებას მოგცემთ იმოქმედოთ როგორც მიმწოდებელი, ასევე მომხმარებელი. ეს მექანიზმი ჩაშენებულია 1C:Enterprise 8.3 პლატფორმაში და დეველოპერებს შეუძლიათ WEB სერვისების ტიპის საკუთარი ობიექტებიც კი დაამატონ სტანდარტულ კონფიგურაციაში. მათი არქიტექტურა აგებულია სერვისების ერთობლიობაზე, რომელიც საშუალებას გაძლევთ გაცვალოთ ინფორმაცია სხვა პროგრამულ უზრუნველყოფასთან.

ვებ სერვისის შექმნა 1C

1C WEB სერვისების ერთ-ერთი მთავარი უპირატესობა არის ინფორმაციის უსაფრთხოების მონაცემებზე პირდაპირი წვდომის აუცილებლობის არარსებობა. სწორად კონფიგურირებული 1C ვებ სერვისი საშუალებას აძლევს სხვა აპლიკაციებს გამოიყენონ ფუნქციები გარედან. ასეთ შემთხვევებში ფუნქციამ თავად უნდა განსაზღვროს მონაცემების გამოყენების უფლება მითითებული პარამეტრების მიხედვით დეველოპერის მიერ დადგენილი წესების მიხედვით.

როგორ შევქმნათ ვებ სერვისი 1C-ში?

იმისათვის, რომ 1C სისტემის გარკვეული ფუნქცია ხელმისაწვდომი გახდეს გარე პროგრამული უზრუნველყოფისთვის, თქვენ უნდა შეასრულოთ მოქმედებების შემდეგი ალგორითმი:

  1. გადადით კონფიგურაციაზე და დაამატეთ WEB სერვისის ობიექტი ხის გარკვეულ ტოტში;
  2. აღწერეთ ყველა ის ოპერაცია, რომლის შესრულებაც ჩვენს ფუნქციონალს შეუძლია. ფუნქციების აღწერა კეთდება მოდულში ჩაშენებულ 1C ენაზე;
  3. დაამატეთ ვებ სერვისის ფუნქციების პარამეტრების აღწერა. გთხოვთ გაითვალისწინოთ, რომ მონაცემთა ტიპები აღწერილია 8.1 ვერსიაში დანერგილი XDTO მექანიზმის არსებული ტიპების გათვალისწინებით;
  4. გამოაქვეყნეთ შექმნილი WEB სერვისი სერვერზე. 1C პლატფორმაში ჩაშენებული მექანიზმი მხარს უჭერს შემდეგ სტანდარტებს:
  • SSL/TLS
  • WS-I BP

მარტივი WEB სერვისის შექმნის მაგალითი

WEB სერვისების მექანიზმის მუშაობის ყველაზე ნათლად დემონსტრირებისთვის, მოდით შევქმნათ მაგალითი - ფუნქციონალი, რომელიც განსაზღვრავს შეყვანილი სტრიქონის სიგრძეს. პროგრამა გადასცემს სტრიქონს მოთხოვნის პარამეტრად და 1C-ში აღწერილი ფუნქცია დააბრუნებს სიმბოლოების რაოდენობას. შექმნისას უნდა გახსოვდეთ, რომ ამ მექანიზმის გამოქვეყნება შესაძლებელს გახდის სხვადასხვა პროგრამული უზრუნველყოფის წვდომას. ვინაიდან ყველა პროგრამას არ შეუძლია აღიქვას კირილიცა, ჩვენ დავასახელებთ კონფიგურაციის ობიექტებს ლათინური სიმბოლოების გამოყენებით.

გახსენით კონფიგურატორი, იპოვეთ ხეში "WEB services" ფილიალი და დაამატეთ ახალი სერვისი "wa_LengthString". თქვენ ასევე უნდა დაამატოთ ახალი ოპერაცია "ოპერაციების" ჩანართზე. მოდით ვუწოდოთ მას "CalcLengthString", თვისებებში ვაზუსტებთ დაბრუნებული მნიშვნელობის ტიპს - int ან მთელი რიცხვი და ვქმნით "InputString" პარამეტრს მის შიგნით. დატოვეთ მნიშვნელობის ტიპი, როგორც სტრიქონი.


ახლა აუცილებელია CalcLengthString ფუნქციის მოქმედების რეგისტრაცია WEB სერვისის მოდულში. ამისათვის გახსენით შექმნილი ფუნქციის თვისებები და დააჭირეთ ღილაკს გამადიდებელი შუშის სახით მარჯვნივ, "პროცედურის სახელი" შეყვანის ველის გვერდით. 1C ავტომატურად შექმნის ფუნქციას ჩვენს WEB სერვისის მოდულში და გახსნის მას ისე, რომ ჩვენ შეგვიძლია აღვწეროთ CalcLengthString მოქმედება. ვისარგებლოთ ამით და დავწეროთ ფუნქციის მოქმედება - შეყვანის სტრიქონის სიგრძის განსაზღვრა.


სინამდვილეში, ეს ასრულებს უმარტივესი WEB სერვისის შექმნას. ახლა თქვენ უნდა "გადაიტანოთ" ეს სერვისი საზოგადოებრივ დომენში, რათა მესამე მხარის პროგრამულმა ან სხვა 1C სისტემებმა შეძლონ ამ ფუნქციის გამოყენება.

იმისათვის, რომ შევძლოთ შექმნილი ვებ სერვისის გამოქვეყნება მისი ფუნქციონალობით, უნდა გვქონდეს წვდომა საიტზე. სანამ სერვისის გამოქვეყნებას დავიწყებთ, ჩვენ უნდა შევამოწმოთ ფაილის სახელი გენერირებული wa_LengthString მოდულის თვისებებში. ის უნდა იყოს ნათელი, მარტივი და ჰქონდეს გაფართოება „1cws“.


ახლა დროა გამოვაქვეყნოთ ჩვენს მიერ შექმნილი WEB სერვისი სერვერზე. ეს ფუნქცია გამოჩნდა პლატფორმის 8.3 ვერსიაში და ბევრმა კომპანიამ უკვე გააცნობიერა ამ ფუნქციის სრული სარგებელი. გამოქვეყნების დასაწყებად, კონფიგურატორში უნდა გახსნათ ფორმა „ადმინისტრაცია/გამოქვეყნება ვებ სერვერზე…“.


ფანჯარაში, რომელიც იხსნება, ჩვენ უნდა დავაყენოთ 1C ვებ სერვისები და შეავსოთ გარკვეული ველები:

  • სახელი. მიუთითებს საქაღალდეს ვებ სერვერზე, სადაც შეინახება ჩვენი ვებ სერვისის აღწერა. ფრთხილად იყავით ასოებს, რადგან სერვერები ზოგჯერ განასხვავებენ დიდ და პატარა ასოებს;
  • ვებ სერვერი. თქვენ უნდა აირჩიოთ სერვერი კომპიუტერზე დაინსტალირებულიდან;
  • კატალოგი. თქვენ უნდა აირჩიოთ გზა საქაღალდეში, სადაც ინახება ვებ სერვერის მონაცემები კავშირის დასაყენებლად. გამოიყენება მხოლოდ ლათინური ასოები;
  • "ბულის" ტიპის ორი მახასიათებელი. პირველი ჩვენთვის სასარგებლოა, თუ გვჭირდება კონფიგურაციაზე წვდომის კონფიგურაცია ვებ კლიენტის საშუალებით. 1C სერვისის გამოსაქვეყნებლად, თქვენ უნდა დააყენოთ მეორე ნიშანი.

რჩება მხოლოდ იმის შემოწმება, რომ სასურველ WEB სერვისს აქვს ჩანიშნული ყუთი პირველ სვეტში და დააჭირეთ "გამოქვეყნებას".


ვინაიდან ეს მექანიზმი ჯერ კიდევ საკმაოდ ახალია, შეიძლება შეგხვდეთ ისეთი შეცდომა, როგორიცაა "შეცდომა ფაილის მოქმედების შესრულებისას ...". ამ შემთხვევაში, თქვენ უბრალოდ უნდა გაიმეოროთ ღილაკი "გამოქვეყნება". უმეტეს შემთხვევაში, ეს დაგეხმარებათ და ნახავთ შეტყობინებას, რომ ვებ სერვისის გამოქვეყნება დასრულებულია.

en//ws/.1cws?wsdl

ასეთი მისამართის მოთხოვნის საპასუხოდ, ბრაუზერმა უნდა აჩვენოს XML ფაილის სტრუქტურა. თუ ხედავთ ცარიელ გვერდს, შეცდომას ან უცნაურ სიმბოლოებს (კოდირების პრობლემები), მაშინ ხელახლა უნდა შეამოწმოთ ყველა ნაბიჯი. ასევე კარგი იდეაა დარწმუნდეთ, რომ სერვერი სწორად არის დაყენებული და თქვენ გაქვთ მასზე წვდომა. 1C WEB სერვისის წარმატებული გამოქვეყნების შემდეგ, მესამე მხარის აპლიკაციებს შეეძლებათ მისი გამოყენება.

WEB-სერვისი - (ინგლისური ვებ-სერვისიდან, სინონიმი - ონლაინ სერვისი). ვებ სერვისები არის სერვისები, რომლებიც უზრუნველყოფილია ინტერნეტში სპეციალური პროგრამების გამოყენებით. მაგალითად, ხშირია ისეთი სერვისები, როგორიცაა: ჰოსტინგი, ელექტრონული ფოსტა, ინტერნეტში სხვადასხვა ინფორმაციის შენახვა (ფაილები, სანიშნეები), კალენდარი და ა.შ. ვებ სერვისის მნიშვნელოვანი თვისებაა ის, რომ ის არ არის დამოკიდებული თქვენს პროვაიდერზე, კომპიუტერზე ან ბრაუზერზე - თქვენ შეგიძლიათ იმუშაოთ თქვენს მონაცემებთან მსოფლიოს ნებისმიერ წერტილში, სადაც წვდომა გაქვთ.

კნიაზევი ა.ა. მასმედიის ენციკლოპედიური ლექსიკონი. - ბიშკეკი: KRSU გამომცემლობა. ა.ა.კნიაზევი. 2002 წ.

ნახეთ, რა არის "WEB-სერვისი" სხვა ლექსიკონებში:

    ვებ სერვისი

    ვებ სერვისი- ვებ სერვისი. ვებ სერვისი, ვებ სერვისი (ინგლისური ვებ სერვისი) არის პროგრამული სისტემა, რომელიც იდენტიფიცირებულია XML-ში განსაზღვრული ინტერფეისების რიგით და გადაცემულია ინტერნეტ პროტოკოლების გამოყენებით. ვებ სერვისი არის მოდულარობის ერთეული ... ... ვიკიპედიის გამოყენებისას

    ვებ ქეში საკომუნიკაციო პროტოკოლი- (WCCP) კონტენტის გადამისამართების პროტოკოლი, შექმნილი Cisco-ს მიერ. უზრუნველყოფს რეალურ დროში მოძრაობის ნაკადების გადამისამართების მექანიზმს. მას აქვს ჩაშენებული სკალირება, დატვირთვის დაბალანსება, ხარვეზების ტოლერანტობა. Cisco IOS ... ... ვიკიპედია

    ვებ რუქის სერვისი- (WMS რუსული ვებ რუქის სერვისი) სტანდარტული პროტოკოლი ინტერნეტით გეოგრაფიულად მოხსენიებული სურათების გამოსაყენებლად, რომლებიც გენერირებულია რუკების სერვერის მიერ GIS მონაცემთა ბაზის მონაცემებზე დაყრდნობით. ეს სტანდარტი შემუშავდა და პირველად ... ... ვიკიპედია

    ვებ სასტუმრო სალვადორი- (სალვადორი, ბრაზილია) სასტუმროს კატეგორია: 2 ვარსკვლავიანი სასტუმრო მისამართი: Rua das Alfazemas … სასტუმროების კატალოგი

    ვებ სასტუმრო აპარეციდა- (Aparecida, ბრაზილია) სასტუმროს კატეგორია: 3 ვარსკვლავიანი სასტუმრო მისამართი: ქ. Isaac Ferrei … სასტუმროს დირექტორია

    სერვისზე ორიენტირებული არქიტექტურა- ორგანიზაციის ბიზნეს პროცესები ხორციელდება კლიენტის არსებული აპლიკაციებით გაწეული სერვისების საფუძველზე. თუ აპლიკაციები არ უჭერენ მხარს სერვისების მიწოდების შესაძლებლობას (ვებ სერვისები), პროდუქტის დანერგვა ვითარდება ... ... ტექნიკური მთარგმნელის სახელმძღვანელო

    ვებ 2

    ვებ 2.0- Web 2.0-თან ასოცირებული ძირითადი ცნებები Web 2.0 (განსაზღვრულია ტიმ ო'რეილის მიერ) არის სისტემების დიზაინის ტექნიკა, რომელიც, ქსელური ურთიერთქმედების გათვალისწინებით, უკეთესი ხდება რაც უფრო მეტი ადამიანი იყენებს მათ. ვებ 2.0 ფუნქცია. არის პრინციპი ... ... ვიკიპედია

    ვებგვერდი- მოთხოვნა "ვებგვერდი" გადამისამართებულია აქ. იხ ასევე სხვა მნიშვნელობები. ვებ საიტი (ინგლისური ვებსაიტიდან: web web and site "place") კომპიუტერულ ქსელში გაერთიანებულია ერთი დომენის სახელით ან IP მისამართით) კერძო პირის დოკუმენტების კრებული ან ... ... ვიკიპედია

წიგნები

  • საინფორმაციო ტექნოლოგიები ტურიზმის ინდუსტრიაში, VN Shitov. სახელმძღვანელოში დეტალურად არის განხილული ზოგადი დანიშნულების კომპიუტერული ტექნოლოგიები პოპულარული Microsoft Office 2010 პაკეტებისა და ალტერნატიული კომპლექსების გამოყენებით, ... შეიძინეთ 546 რუბლით
  • 75 მზა გადაწყვეტილებები თქვენი ვებსაიტისთვის PHP-ში, Steinmetz W., Ward B.. ყველას, ვინც ქმნის ან აპირებს საკუთარი ვებსაიტის შექმნას, აუცილებლად აწყდება მთელი რიგი ამოცანები და სირთულეები: როგორ შექმნათ ბლოგი საიტზე…... ხმის მიცემის "დაამაგრება", გარკვეული დახურვა...

ვებ სერვისის არქიტექტურაზე დაყრდნობით, ჩვენ ვქმნით შემდეგ ორ კომპონენტს, როგორც ვებ სერვისების განხორციელების ნაწილს:

სერვისის პროვაიდერი ან გამომცემელი

ეს არის ვებ სერვისის პროვაიდერი. სერვისის პროვაიდერი ახორციელებს ამ სერვისს და ხდის მას ინტერნეტში ან ინტრანეტში. ჩვენ დავწერთ და გამოვაქვეყნებთ მარტივ ვებ სერვისს .NET SDK-ის გამოყენებით.

მომსახურების მიმწოდებელი ან მომხმარებელი

ეს არის ვებ სერვისის ნებისმიერი მომხმარებელი. მომთხოვნი მოიხმარს არსებულ ვებ სერვისს ქსელის კავშირის გახსნით და XML მოთხოვნის გაგზავნით. ჩვენ ასევე დავწერთ ორ მოთხოვნას ვებ სერვისებზე: ერთი ვებ მომხმარებელი (ASP.NET აპლიკაცია) და მეორე მომხმარებელი Windows აპლიკაციების საფუძველზე.

ქვემოთ მოცემულია ვებ სერვისის ჩვენი პირველი მაგალითი, რომელიც მუშაობს როგორც სერვისის პროვაიდერი და ასახავს ორ მეთოდს (დამატება და SayHello), როგორც ვებ სერვისები, რომლებიც გამოიყენება აპლიკაციებისთვის. ეს არის ვებ სერვისის სტანდარტული შაბლონი. .NET სერვისები იყენებენ .asmx გაფართოებას. გაითვალისწინეთ, რომ ვებ სერვისის სახით გამოვლენილ მეთოდს აქვს WebMethod ატრიბუტი. შეინახეთ ეს ფაილი, როგორც FirstService.asmx, IIS ვირტუალურ დირექტორიაში (როგორც აღწერილია IIS-ის დაყენებაში, მაგ. c:\MyWebSerces).

FirstService.asmx

<%@ WebService language = "C" class = "FirstService" %>სისტემის გამოყენებით; System.Web.Services-ის გამოყენებით; System.Xml.Serialization-ის გამოყენებით; საჯარო კლასი FirstService: WebService ( public int Add(int a, int b) ( return a + b; ) public String SayHello() ( დაბრუნება "Hello World"; ) )

ვებ სერვისის შესამოწმებლად, ის უნდა გამოქვეყნდეს. ვებ სერვისის გამოქვეყნება შესაძლებელია როგორც ინტრანეტში, ასევე ინტერნეტში. ჩვენ გამოვაქვეყნებთ ამ ვებ სერვისს ადგილობრივ აპარატზე გაშვებული IIS-ისთვის. დავიწყოთ IIS-ის დაყენებით.

  • გახსენით დაწყება → პარამეტრები → პანელი → ადმინისტრაციული ინსტრუმენტები → ინტერნეტ სერვისების მენეჯერი.
  • გააფართოვეთ და დააწკაპუნეთ მაუსის მარჯვენა ღილაკით ნაგულისხმევი ვებ საიტი; აირჩიეთ ახალი → ვირტუალური დირექტორია. ვირტუალური დირექტორიის შექმნის ოსტატი იხსნება. დააჭირეთ "შემდეგი.
  • ვირტუალური დირექტორია ეკრანი გამოჩნდება. შეიყვანეთ სახელი ვირტუალური დირექტორიასთვის. მაგალითად, MyWebServices. და დააჭირეთ შემდეგი.
  • იხსნება "ვებ კონტენტის დირექტორია" ეკრანი.
  • შეიყვანეთ დირექტორია სახელი ვირტუალური დირექტორია. მაგალითად, c:\MyWebServices დააწკაპუნეთ შემდეგი.
  • წვდომის ნებართვის ეკრანი გამოჩნდება. შეცვალეთ პარამეტრები თქვენი მოთხოვნების შესაბამისად. მოდით შევინარჩუნოთ ნაგულისხმევი პარამეტრები ამ სავარჯიშოსთვის.
  • დააჭირეთ "შემდეგი". ის ასრულებს IIS დაყენებას.
  • დააწკაპუნეთ "დასრულება" დაყენების დასასრულებლად.

იმის შესამოწმებლად, არის თუ არა IIS კონფიგურირებული სწორად, დააკოპირეთ HTML ფაილი (მაგალითად x.html) ზემოთ შექმნილ ვირტუალურ დირექტორიაში (C:\MyWebServices). ახლა გახსენით Internet Explorer და შეიყვანეთ http://localhost/MyWebServices/x.html. მან უნდა გახსნას x.html ფაილი.

შენიშვნა. თუ ეს არ მუშაობს, სცადეთ ლოკალჰოსტის შეცვლა თქვენი მოწყობილობის IP მისამართით. თუ ის მაინც არ მუშაობს, შეამოწმეთ მუშაობს თუ არა IIS; შეიძლება დაგჭირდეთ IIS და ვირტუალური დირექტორიას ხელახლა კონფიგურაცია.

ამ ვებ სერვისის შესამოწმებლად დააკოპირეთ FirstService.asmx ზემოთ შექმნილ IIS ვირტუალურ დირექტორიაში (C:\MyWebServices). გახსენით ვებ სერვისი Internet Explorer-ში (http://localhost/MyWebServices/FirstService.asmx). მან უნდა გახსნას ვებ სერვისის გვერდი. გვერდს უნდა ჰქონდეს ბმულები ორ მეთოდთან, რომელსაც ჩვენ ვაძლევთ როგორც ვებ სერვისს ჩვენს აპლიკაციას. გილოცავ!თქვენ დაწერეთ თქვენი პირველი ვებ სერვისი!

ვებ სერვისის ტესტირება

როგორც ახლა ვნახეთ, ვებ სერვისების დაწერა მარტივია .NET Framework-ში. ვებ სერვისების წერა ასევე მარტივია .NET გარემოში; თუმცა ოდნავ უფრო აქტიურია. როგორც ადრე განვიხილეთ, ჩვენ დავწერთ სერვისის მომხმარებელთა ორ ტიპს: ერთი არის ვებსაიტი და მეორე არის მომხმარებელზე დაფუძნებული Windows აპლიკაცია. მოდით დავწეროთ ჩვენი პირველი ვებ სერვისის მომხმარებელი.

ვებ სერვისები

დაწერეთ ვებ მომხმარებელი, როგორც ქვემოთ მოცემულია. დაარქვით სახელი WebApp.aspx. გაითვალისწინეთ, რომ ეს არის ASP.NET აპლიკაცია. შეინახეთ ეს ვებ სერვისის ვირტუალურ დირექტორიაში (c:\MyWebServices\WebApp.axpx). ამ აპს აქვს ორი ტექსტური ველი, რომლებიც გამოიყენება მომხმარებლისგან ნომრების დასამატებლად. მას აქვს ერთი Run ღილაკი, რომელზეც დაწკაპუნებისას მიიღება Add და SayHello ვებ სერვისები.

WebApp.axpx

<%@ Page Language="C#" %>

პირველი დასამატებელი ნომერი: 4< /asp:TextBox>

დასამატებელი მეორე ნომერი: 5

ვებ სერვისის შედეგი -

გამარჯობა მსოფლიო სერვისი : ეტიკეტი< /asp:Label>

სერვისის დამატება : & ეტიკეტი

მომხმარებლის შექმნის შემდეგ ჩვენ უნდა შევქმნათ პროქსი ვებ სერვისის მოსახმარად. ეს სამუშაო კეთდება ავტომატურად Visual Studio .NET-ის მიერ ჩვენთვის, როდესაც მივმართავთ დამატებულ ვებ სერვისს. აქ არის შემდეგი ნაბიჯები:

  • შექმენით პროქსი ვებ სერვისის გამოსაყენებლად. პროქსი იქმნება WSDL პროგრამის გამოყენებით, რომელიც მოწოდებულია .NET SDK-ით. ეს პროგრამა იღებს ინფორმაციას ვებ სერვისიდან და ქმნის პროქსი. პროქსი სერვერი მოქმედებს მხოლოდ კონკრეტული ვებ სერვისისთვის. თუ თქვენ გჭირდებათ სხვა ვებ სერვისების გამოყენება, თქვენ ასევე უნდა შექმნათ პროქსი ამ სერვისისთვის. Visual Studio .NET ავტომატურად ქმნის პროქსის ვებ სერვისის მითითების დამატებისას. შექმენით პროქსი ვებ სერვისისთვის WSDL პროგრამის გამოყენებით, რომელიც მოწოდებულია .NET SDK-ით. ის შექმნის FirstSevice.cs ფაილს მიმდინარე დირექტორიაში. ჩვენ უნდა შევადგინოთ ის ვებ სერვისისთვის FirstService.dll (პროქსი) გენერირებისთვის.
  • c:>WSDL http://localhost/MyWebServices/FirstService.asmx?WSDL
  • c:> csc /t:library FirstService.cs
  • მოათავსეთ კომპილირებული პროქსი ვებ სერვისის ვირტუალური დირექტორიის bin დირექტორიაში (c:\MyWebServices\bin). ინტერნეტ საინფორმაციო სერვისები (IIS) ეძებს პროქსი სერვერს ამ დირექტორიაში.
  • შექმენით სერვისის მომხმარებელი ისევე, როგორც ჩვენ გავაკეთეთ. გაითვალისწინეთ, რომ ვებ სერვისის პროქსი ობიექტი შექმნილია მომხმარებელზე. ეს პროქსი ზრუნავს სერვისთან ურთიერთობაზე.
  • შეიყვანეთ მომხმარებლის URL IE-ში მის შესამოწმებლად (მაგალითად, http://localhost/MyWebServices/WebApp.aspx).

ვებ სერვისის მომხმარებელი Windows აპლიკაციების საფუძველზე

Windows აპლიკაციებზე დაფუძნებული ვებ სერვისის აპლიკაციის დაწერა მსგავსია ნებისმიერი სხვა Windows აპლიკაციის დაწერისა. თქვენ მხოლოდ უნდა შექმნათ პროქსი (რაც უკვე გავაკეთეთ) და მიმართოთ ამ პროქსის განაცხადის შედგენისას. ქვემოთ მოცემულია ჩვენი Windows აპლიკაცია, რომელიც იყენებს ვებ სერვისს. ეს აპლიკაცია ქმნის ვებ სერვისის ობიექტს (პროქსი, რა თქმა უნდა) და უწოდებს მასზე SayHello და Add მეთოდებს.

WinApp.cs

სისტემის გამოყენებით; System.IO-ს გამოყენებით; სახელთა სივრცე SvcConsumer ( კლასი SvcEater ( საჯარო სტატიკური სიცარიელე Main(String args) (FirstService mySvc = new FirstService(); Console.WriteLine("Calling Hello World Service: " + mySvc.SayHello()); Console.WriteLine("Calling 2, 3) სერვისი: " + mySvc.Add(2, 3).ToString()); ) )

შეადგინეთ იგი c: \> csc /r:FirstService.dll WinApp.cs-ით. ის შექმნის WinApp.exe ფაილს. გაუშვით აპლიკაციისა და ვებ სერვისის შესამოწმებლად.

ახლა ისმის კითხვა: როგორ შეგიძლიათ დარწმუნებული იყოთ, რომ ეს აპლიკაცია რეალურად ურეკავს ვებ სერვისს?

ადვილი შესამოწმებელია. გააჩერეთ თქვენი ვებ სერვერი ისე, რომ ვებ სერვისთან დაკავშირება შეუძლებელია. ახლა გაუშვით WinApp აპლიკაცია. ის გამონაკლისს გამოიტანს გაშვების დროს. ახლა ისევ გაუშვით ვებ სერვერი. მან უნდა იმუშაოს.