26
METODAT E WEB SERVICE-VE

METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

METODAT E WEB SERVICE-VE

Page 2: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

web service-t & web service method

Web Service - një komponent aplikacioni, iaksesueshëm në mënyrë remote, i cili merr të dhëna ( me http), i përpunon dhe kthen një përgjigje.

Përbëhet nga 2 pjesë logjike: 1. Pika hyrëre (skedari .asmx)2. Kodi që përbën funksionalitet e një web service

Ndërtimi i një web service në 3 hapa:1. Krijimi i një skedari .asmx2. Direktiva @WebService në krye të skedarit3. Krijimi i metodave

Page 3: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Direktiva @WebService

Bashkë me .asmx siguron një url me anë të se cilës mund tëaksesohet nje web service.

Ka 4 atribute:1. Class - Percakton se cila klase do te perbeje web service-n. Kompilohet

heren e pare qe thirrtet web service-i.

2. codeBehind – Percakton nje skedar qe do te perdoret si source code per kompilimin e web service, nese klasa e percaktuar me atributinclass nuk e permban ate.

3. Language – Percakton gjuhen ne te cilen eshte shkruar klasa. I tregohetkompilatorit gjuha qe do te perdoret per kompilim.

4. Debug – Nese true, gjate kompilimit shfaqen simbolet e debug.

Shembull:

<%@ WebService class="RecordStore.Service1" language="C#"

codebehind="RecordStore.Service1.cs" debug="true“

%>

Page 4: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Web service classes and namespaces

System.Web.Services – namespace qe permban klasa per transmetimin e te dhenave midis klientit dhe web service-it.

Perfshin atributet :1. WebService

-Vendoset para deklarimit te klases.

-Percakton namespace-in e nje web service

-Ka 3 cilesi: 1. Name – emri I XML Web Service2. Namespace – namespace ne server3. Description – Pershkrim i web service-it

-Shembull:[WebService (Name="Record Store Web Service",

Namespace="http://www.notashop.com/wscr", Description=“Shembull I nje web service")]

public class Service1 : System.Web.Services.WebService { ⋮ }

2. WebMethod

Page 5: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Web service classes and namespaces

Atributi WebMethod

-Implementon funksionalitetet e nje web service

-Vendoset fjala kyce : WebMethod para nje metode publike

-Pasi krijohet dhe kompilohet, metoda mund te thirret nga nje klient.

-Shembull i nje web method qe llogarit %:

namespace PercentService

public class Service1: {

[WebMethod]

public double CalcPercent(int Percent, double Number) {

double Value = (Number / 100) * Percent;

return Value;

}

}

-shembull i therritjes se metodes:

PercentService.Service1 WebProxy= new PercentService.Service1();

double Total = WebProxy.CalcPercent(25, 5);

Page 6: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Atributi Web Method - Cilesite

1. Description - Percakton nje pershkrim per metoden.

2. MesssageName - Per te shtuar emrin e metodes.

3. Enablesession

- Ben te mundur perdorimin e objekteve session dhe

application per nje web service.

- Nese true, gjendja e sesionit mund te kapet me

HTTPContext.Current.Session. Web service-i dergon

nje session id unike(qe ruhet ne cookie), e cila duhet

te dergohet nga klienti ne kerkesen pasardhese.

Disavantazh: Degradim i performances

4. CacheDuration - Percakton kohen gjate se ciles rezultati I nje web method ruhet ne cache.

Avantazh: Perdoret per te dhenat qe ndryshojne rralle. Web method thirret nje here, dhe ne kerkesat pasardhese me te njejtet parameter, nuk thirret me, por merret rezultati nga cache.

Page 7: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Atributi Web Method - Cilesite

5. Transaction Option- Siguron suport per transaksionet (grup veprimesh

ne nje njesi te vetme logjike) e .NET.

- Systems.EnterpriseServices : namespace per transaksionet

- 5 opsione: Disabled, Not Supported, Supported, Required, RequiresNew

6. BufferResponse - buffer ku ruhet pergjigja derisa ajo tejete e plote. Minimizon komunikimin klient-server. Jo e mire kur pergjigja konsiston ne nje sasi te madhe tedhenash.

Page 8: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Shembull i nje web service

Shembull i nje aplikimi klient (Windows Media Player psh) qeperdor nje web service per te aksesuar te dhenat qe i duhen.

using System.Web.Services.Protocols;

using System.Data.OleDb;

[WebService (

Name="RecordStoreWebService",

Namespace="http://www.notashop.com/wscr",

Description=“Nje web service qe kthen biografine dhe imazhin e

nje CD“ )

]

public class Service1 : System.Web.Services.WebService { }

Perbehet nga 2 web method:1. Nje metode qe kthen biografine e artistit te nje CD.

Page 9: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Metoda te web service shembull

[WebMethod (Description=“Kthen biografine e nje artisti") ]

public string GetBio(string Id) {

OleDbConnection objConnection;

OleDbCommand objCommand;

string [] ArtistBio ; string ArtistB; ArtistBio = new String[10]; string strConnect; string strCommand;

OleDbDataReader DataReader1; int i=1;

strConnect = "Provider=SQLOLEDB.1;Password='';" + "Persist Security Info=True;User ID=sa;" + "Initial

Catalog=dansrecordsSQL;Data Source=CHRISUHOME";

strCommand = "SELECT Biography From Biography WHERE " + "Id='" + Id + "'";

objConnection = new OleDbConnection(strConnect);

objConnection.Open();

objCommand = new OleDbCommand(strCommand, objConnection);

DataReader1 = objCommand.ExecuteReader();

while (DataReader1.Read()) {

ArtistBio[i] = DataReader1.GetString(0).ToString(); i++; }

DataReader1.Close(); objConnection.Close(); ArtistB = ArtistBio[1];

return ArtistB;

}

Page 10: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Metoda qe kthen nje imazh per nje CD

[WebMethod(Description=“Kthen imazhin per nje CD")]

public byte[] GetPic(string Id) {

OleDbConnection objConnection;

OleDbCommand objCommand;

string strConnect;

string strCommand;

strConnect = "Provider=SQLOLEDB.1;Password='';” + "Persist

Security Info=True;User ID=sa;” + "Initial

Catalog=dansrecordsSQL;Data Source=CHRISUHOME";

strCommand = "SELECT CoverPic From AlbumDetails "

+ "WHERE Id = '" + Id + "'";

objConnection = new OleDbConnection(strConnect);

objConnection.Open();

objCommand = new OleDbCommand(strCommand,

objConnection);

OleDbDataAdapter da = new

OleDbDataAdapter(objCommand);

DataSet ds = new DataSet();

da.Fill(ds, "AlbumDetails"); I

nt count = ds.Tables["AlbumDetails"].Rows.Count;

if(count>0) {

Byte[] BLOBPicByteArray = new Byte[0];

BLOBPicByteArray=(Byte[])

(ds.Tables["AlbumDetails"].Rows[count -1]["CoverPic"]);

objConnection.Close();

return BLOBPicByteArray;

}

else {

Byte[] BLOBPicByteArray = new Byte[0];

objConnection.Close();

return BLOBPicByteArray;

}

}

Page 11: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

WSDL dhe metodat web

Ekziston nje lidhje midis tyre: Elementevet te percaktuar ne nje web method I korespondojn elemente ne nje doc WSDL.

Pjese nga doc WSDL

<types>

<s:schema elementFormDefault="qualified“ targetNamespace="http://www.notashop.com/wscr"> <s:element name="GetBio">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="Id“ type="s:string" />

</s:sequence>

</s:complexType>

</s:element>

<s:element name="GetBioResponse“>

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="GetBioResult“

type="s:string" />

</s:sequence>

</s:complexType>

</s:element>

targetNamespace -namespace qe percaktohette webservice

<messsage> - percaktongjithe tipet qe pranon njeweb service

<portType> - Gruponveprimet, duke perfshire per cdo veprim, nje pershkrim, tipin e inputit dhe outputitte metodes.

Page 12: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Konfigurimi i metodave Web

Skedaret e konfigurimit ndikojne ne menyren se si Web Service-et dhe metodat web funksionojne. Ne .Net perdoren dy skedare kryesore konfigurimi:

Machine.config, ku konfigurohen informacione per serverin dhe perdoret pergjate gjithe aplikacionit. Kyeshte skedari nga i cili marrin konfigurime edheskedaret e tjere te konfigurimit. Ndodhet ne \Windows\Microsoft.Net\Framework\version\Config.

Web.config, qe perdoret per te konfiguruarinformacione specifike per aplikacionin dhe duhet tegjendet ne direktorine kryesore te aplikacionit web.

Page 13: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Menaxhimi i gjendjes

Gjate perdorimit te Web Service-eve, shpesh lind e nevojeshme ruajtja e gjendjes, pra ruajtja e nje informacioni specifik qe do te nevojtet pergjate rrjedhes se funksionimit te aplikacionit.

Disa raste ne te cilat do te lindte e nevojshme ruajtja e gjendjes do te ishin:• Kur nje web Sevice-i i duhet te krijoje lidhje te shumefishta me nje klient

• Kur nje Web Service-i i duhet te mbaje mend, per nje transaksion, gjendjen e secilit proces qe perfshin servisi.

• Kur Web Service-it I duhet informacion nga nje data source

• Kur nje Web Service ec ne nje seri hapash ne nje transaksion qe ka mundesi te behet rollback, ne rast se nje hap deshton etj.

Megjithate rekomandohet qe ruajtja e gjendjes te evitohet sa me shume ne nje aplikacion, sepse shkaktojne ne shume raste ulje te ndjeshme te performances.

Ne Web Servise ruajtja e gjendjes behet pergjithesisht me anen e objekteveApplication dhe Session. Keto dy objekte mund te aksesohen ne dy menyra:1. Duke trasheguar nga klasa WebService qe ndodhet ne namespace-in

System.Web.Services

2. Nepermjet nje objekti HttpContext dhe cilesise se tij Current.

Page 14: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Objektet Application per ruajtjen e gjendjes

public class SetArtist:System.Web.Services.WebService {

[WebMethod]

public string SetArtistName(string Artist) {

Application.Add("Artist", ArtistName);

return ((string) Application["Artist"]);

}

[WebMethod]

public string GetArtistName() {

return((string) Application["Artist"]);

}

}

Sigurojne ruajtjen gjendjes se aplikacionit, duke lejuar ruajtjen e informacionit ne

session pergjate gjithe aplikacionit. Shembull perdorimi:

Aksesimi nepermjet objektit HttpContext, qe me cilesine e tij Current, kthen njerefererence ndaj objektit Application.public class SetTitle:System.Web.Services.WebService{

[WebMethod]public string AddTitle(string Title){

HttpContext ConObj = HttpContext.Current;ConObj.Application["Artist"] =

(string) ConObj.Application["Artist"] + Title;

return ((string) ConObj.Application["Artist"]);

}}

Page 15: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Objektet Session per ruajtjen e gjendjes

Ky ndryshim i vetem duket dhe ne kodin e meposhtem:

public class SetArtist:System.Web.Services.WebService

{

[WebMethod(EnableSession = True)]

public string SetArtistName(string Artist)

{

Session.Add("Artist", ArtistName);

return ((string) Session["Artist"]);

}

[WebMethod(EnableSession = True)]

public string GetArtistName()

{

return((string) Session["Artist"]);

}

}

public class SetTitle:System.Web.Services.WebService

{

[WebMethod(EnableSession = True)]

public string AddTitle(string Title)

{

HttpContext ConObj = HttpContext.Current;

ConObj.Session["Artist"] =

(string) ConObj.Session["Artist"] + Title;

return ((string) ConObj.Session["Artist"]);

}

}

Megjithate, perdorimi i objektit Session nuk jep njezgjidhje optimale, sepse sa here qe thirret njeWeb Service, krijohet nje session i ri.

Jane te ngjashme me objektet Application, vetem se duhet te behen enable ne

menyre eksplicite duke i dhene vleren True cilesise EnableSession te Web metodes.

Page 16: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Perdorimi i Cookies

Menyra tjeter per te ruajtur gjendjen ne klient eshte

nepermjet ruajtjes se informacionit ne cookies dhe

perfshirja e tyre ne cdo kerkese. Kjo realizohetnepermjet

ruajtjes se informacionit ne objektet Response dheRequest

qe mund te aksesohen nga objekti Context. Kjoilustrohet

ne kodin e meposhtem:

public class SetArtist:System.Web.Services.WebService

{

[WebMethod]

public string SetArtistName(string Artist)

{

HttpCookie CustomCookie = new HttpCookie("artist");

CustomCookie.Values.Add("Artist", "The Monkees");

Context.Response.AppendCookie(CustomCookie)

}

Kodi per terheqjen e informacionit:

[WebMethod]

public string GetArtistName()

{

HttpCookie CustomCookie = Context.Response.Cookies("artist");

if(cookie.Values["artist"] == "The Monkees")

{

string message = "I'm a believer";

}

return message;

}

Megjithate, Cookies ofrojne nje zgjidhje te mire

vetem ne rastin kur jemi te sigurt qe klienti nuk i

c’aktivizon cookies ne browser-in e tij, dhe ne

rastin kur nuk kerkohet qe informacioni te jete i

sigurt.

Page 17: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Web Service-et asinkrone

Si default kerkesat e klienteve ndaj web service-eve trajtohen ne menyre sinkrone, por web service-et mund te ofrojne dhe menyrenasinkrone te procesimit. Pra klientet nuk vendosen ne pritje pas berjes se kerkeses ndaj web service-it, nqs pergjigjia nuk eshtevendimtare per vazhdimesine e eksekutimit te aplikacionit web.

Procesimi asinkron mund te jete i nevojshem per shembull, ne rastin e situatave qe perfshijne transaksione apo perdorimin e user interface-it, ky i fundit do te ‘ngrinte’ nqs do te pritej.

Kerkesat asinkrone nuk ndikojne ne menyren e ekzekutimit te web metodave.

Page 18: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Realizimi i metodave asinkrone

Perdoret cilesia OneWay qe eshte pjese e atributit SoapRpcMethod.

Vendosja e OneWay=True i jep mundesine klientit qe te mos prese per nje pergjigje qe do tevonoje derisa te perfundoje procesimi i Web Service-it.

Web service-i e realizon kete duke kthyer nje kod 202 statusi HTTP , qe i tregon klientit qeprocesi ka nisur dhe se ai nuk eshte e nevojshme te prese. Nga ana tjeter Web service-i ruannje vlere ne database, qe mund te rimerret ne nje moment te mevonshem.

Perdorimi i OneWay mund te ilustrohet ne perdorimin e nje gjeneratori numrash random. NjeWeb Service qe realizon gjenerimin e mijera numrash random mund te kerkoje ore qe teperfundoje, dhe klienti nuk ka pse te prese:

public class GenerateRandomNumber: WebService { [SoapRpcMethod(OneWay=true)]

[WebMethod]

public void Generate() {

//Logic for generating random number sequences

}

Kjo nuk eshte nje zgjidhje optimal, sepse nuk mund te identifikohet ne menyre te sakte se ciliservis e nisi procesin. Mund te idetifikohet nje perdoruesi te caktuar, por mund te ndodhe qe injejti perdorues te beje disa thirrje ndaj web service-it.

Page 19: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Nje menyre zgjidhjeje eshte ndarja e punes.

Ndertimi i disa web metodave qe kryejne detyra te ndryshme .

Brenda web service-it. Nje detyre niset nga nje metode dhe perfundohet nga njetjeter.

Threading

Perdorimi i disa metodave, ben qe te linde detyra e garantimit te nje metode te sigurt te aksesimit te informacionit.

Duhet te sigurohet aksesi ekskluz i burimeve nga ana e metodave ne nje moment te caktuar, nepermjet procedurave te bllokimeve

WS-Routing

WS-Routing eshte nje protokoll i bazuar ne SOAP qe lejon dergimin e mesazheveSOAP ne menyre asinkrone. Ai shton informacion qe pershkruan pathet e rruges se mesazhit tek header-i.

Page 20: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Ndertimi i versioneve me XSLT

XSLT (Extensible Stylesheet Language Transformations) eshte nje gjuhe qe jep mundesine e ndertimit te style sheet-eve qe transformojne nje dokument XML ne nje tjeter.

Ajo perdoret shume mire per ndertimin e versioneve ne rastin e Web Service-eve, per shembullper skemat e tyre.

Ndertimi i versioneve per dokumentat XML realizohet ne 2 menyra:

1. Shtimi i atributit te versionit ne

dokumentin XML<?xml version="1.0"?>

<album version="1.1">

<title>

<titlename>

Rated R

</titlename>

</title>

</album>

2. Duke vendosur informacionin

e versionit ne namespace<?xml version="1.0"?>

<album

xmlns="http://www.notashop.co

m/wscr/albums/1.1">

<title>

<titlename>

Rated R

</titlename> </title>

</album>

Pasi kemi 2 versione te nje dokumenti XML, XSLT ekzekuton transformimet per te bere

upgrade.

Page 21: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Exceptions

Kur ndodh nje error ne Web Service realizohen keto veprime:

• .NET kap gabimin e ndodhur

• Informacioni i error-it perfshihet ne nje mesazh SOAP

• Kur klienti merr mesazhin SOAP, hidhet nje exception i tipit

SoapExcetion

Per me shume informacion mbi gabimin mund te kontrollohet

objekti StackTrace.

Exception eshte mire te parashikohen dhe trajtohen qe ne web

metodat duke marre parasysh te gjitha rastet e deshtimit. Per

shembull ne rastin e marrjes se inputit te perdoruesit do

ndertohej kodi I meposhtem:

Page 22: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Exceptions

Kur ndodh nje error ne Web Service realizohen keto veprime:•.NET kap gabimin e ndodhur•Informacioni i error-it perfshihet ne nje mesazh SOAP•Kur klienti merr mesazhin SOAP, hidhet nje exception i tipit SoapExcetion

Per me shume informacion mbi gabimin mund te kontrollohet objekti StackTrace.

Exception eshte mire te

parashikohen dhe trajtohen qe

ne web metodat duke marre

parasysh te gjitha rastet e

deshtimit.

Per shembull ne rastin e marrjes

se inputit te perdoruesit do

ndertohej kodi i meposhtem:

[WebMethod]

public string Input(string userInput){ int

amount;

switch(userInput)

{ case 1:

amount=1;

break;

case 2:

amout=20;

break;

case 3:

amount=30;

break;

default:

throw new SoapException("Invalid

Amount supplied",

SoapException.ClientFaultCode); }

Page 23: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Error Logging

.NET te lejon te aksesosh te dhenat log mbi sigurine, sistemin dhe aplikacionit, nepermjet klases EventLog, qe ndodhet ne amespace-in System.Diagnostics. mund tubesh log error-eve duke I vendosur Brenda nje try/catch.

Shembull perdorimi:

[WebMethod]public void ErrorLogging() {

try {

int[] testarray = new int[5];

for(int i=0; i++; i<=10) {

testarray[i] = i+1;

}

}

catch (Exception err) {

EventLog Applog = new EventLog();

Applog.Source = "ErrorGenerator";

Applog.WriteEntry(err.Message, EventLogEntryType.Error); }}

Kur shtohen me shume elemente se sa permban tabela, hidhet nje exception dhepermbajtja e error-it vendoset ne nje object EventLog. Cilesia Source e objektitEventLog lejon te specifikosh emrin e aplikacionit qe do te hedhe error-in.

Page 24: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Disa prej cilesive te klases EventLog jane:

EnableRaisingEvents , Entries, Log, LogDisplayName, MachineName, Source, SynchronizingObject

Disa prej metodave te klases EventLog jane:

BeginInit, Clear, Close, CreateEventSource, Delete, DeleteEventSource etj

Per te marre informacon nga error log mund te ndertohet nje tjeter metode qe kthente dhenat nga objekti EventLog. Shembulli popullon nje tabele me te dhenat e ketijobjekti[WebMethod]

public void RetrieveLog() {

EventLog log = new EventLog("Application1");

string[][] ErrorLogArray = new string[10][2];

int i=0;

foreach (EventLogEntry entry in log.Entries) {

if (entry.Source == "ErrorGenerator") {

ErrorLogArray[i][0] = entry.Message;

ErrorLogArray[i++][1] = entry.TimeGenerated;

}

}

Klasa EventLog

Page 25: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

Zbulimi i Web Service-it

Pasi eshte ndertuar Web Service-i, ai nuk eshte akoma plotesisht

funksional.

Ai duhet te regjistrohet ne UDDI ose DISCO qe te mund te kerkohet dhe

te gjendet nga personat qe do e perdorin ate.

Nqs servisi do te aksesohet nga publiku I gjere, eshte mire te perdoret

UDDI.

DISCO mund te perdoret per te kontrolluar nese servisi eshte i

kerkueshem dhe aksesueshem ne vete serverin tone.

DISCO funksionon me mire ne nivel kerkimi local. Nje avantazh tjeter i

DISCO ndaj UDDI eshte se nuk kerkon regjistrim ne Misrosoft Server.

Nqs kerkimi dhe aksesimi I web service-it duhet te jete ne nje hapesire

me te gjere, e hapur ndaj publikut, duhet te perdoret UDDI

Page 26: METODAT E WEB SERVICE-VEinformatika.geo.edu.al/wp-content/uploads//WS_METODA.pdfDirektiva @WebService Bashkë me .asmx siguron një url me anë të se cilës mund të aksesohet nje

DISCO

Per te perdorur skedaret .vsdisco, duhet te behet enable zbulimi dinamik ne skedarin machine.config duke hequr komentin ne rreshtin .NET 1.0:

<!-- <add verb="*" path="*.vsdisco" type="System.Web.Services.Discovery.DiscoveryRequestHandler, ΠSystem.Web.Services, Version=1.0.3300.0, Culture=neutral, ΠPublicKeyToken=b03f5f7f11d50a3a" validate="false"/>-->

Mund te krijojme edhe vete nje document per zbulim dinamik (.disco file).

Shtohet nje element i ri tek web Service Project -> Static Discovery File

Dokumenti do te ngjante si me poshte:

<?xml version="1.0"?>

<discovery xmlns="http://schemas.xmlsoap.org/disco/">

<contractRef ref=" http://www.notashop.com/wscr/07/disco/service1.asmx?wsdl" docRef=" http://www.notashop.com/wscr/07/disco/service1.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />

<discoveryRef ref="http://www.notashop.com/wscr/07/disco/simple/default.disco" />

<discoveryRef ref="http://www.notashop.com/wscr/07/disco/soap/default.vsdisco" />

<schemaRef ref="http://www.notashop.com/wscr/07/disco/soap/schema.xsd" />

</discovery>

<contractRef>, specifikon servisin qe duam te bejme

<discoveryRef> referon tek dokumete te tjera zbuluese

<schemaRef> perdoret per tu lidhur me skemen e web service-it

DISCO