WebElektronika

IIS által hostolt WCF alkalmazás

person access_time 2015.09.07.
Készítünk VS2012 segítségével egy WCF (Windows Communication Foundation) alkalmazást, amelynek segítségével két metódust publikálunk ki.


Indítsuk el a Visual Studio 2012-t és hozzunk létre egy új Web Site-ot (1. ábra). A site neve : WebWCF1.

kep
1. ábra   Projekt létrehozása
 

Az új website-unknak a Solution Explorer-ét mutatja a második ábra, látható, hogy ez egy üres projekt, csak egy web.config-ból áll.

kep
2. ábra   A Solution Explorer
 

Adjunk ehhez egy WCF sablont (operations.svc), ahol felépítjük a szolgáltatásunkat, amelyet az IIS fog hosztolni (3. ábra).

kep
3. ábra   WCF file hozzáadása a projekthez
 

Láthatjuk ezek után a Solution Explorer-ben, hogy három új file került a projektünkbe, az operations.svc ("kívülről ez látható) és az App_Code mappában lévő Ioperations.cs interfész, illetve az operations.cs osztály (4. ábra).

kep
4. ábra   Az "új" Solution Explorer
 

Az Ioperations.cs file-ban lévő interfészben adjunk hozzá két metódusnak a prototípusát. Használnunk kell a [ServiceContract] és az [OperationContract] attribútumokat, de ehhez szükségünk van a System.ServiceModel szerelvényre.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

[ServiceContract]
public interface Ioperations
{
          [OperationContract]
          int Multiplication(int a, int b);

          [OperationContract]
          string ChangeChar(string str, char ch);
}

 

Implementáljuk az interfészt az operations osztályban! Ehhez segítséget ad az 5. ábra.

kep
5. ábra   Az interfész implementálása
 

Az implementálás után a metódusaink megjelennek az osztályban, egy nem implementált kivételdobással, amelyet töröljünk ki.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

public class operations : Ioperations
{
          public int Multiplication(int a, int b)
          {
                   throw new NotImplementedException();
          }
         public string ChangeChar(string str, char ch)
         {
                  throw new NotImplementedException();
         }
}

 

Módosítsuk tehát a következők szerint a metódusainkat.

public int Multiplication(int a, int b)
{
         return a * b;
}

public string ChangeChar(string str, char ch)
{
         return str.Replace(ch, Char.ToUpper(ch));
}

 

Futtassuk az alkalmazásunkat debug módban (F5), ekkor megjelenik a WCF Test Client ablak (6. ábra).

kep
6. ábra   WCF Test Client ablak
 

Kattintsunk az egyik metódusra (pl.: Multiplication()), ekkor az ablak jobb oldalán a metódusunk paramétereinek adhatunk értékeket (7. ábra). Adjunk a Multiplication() metódus str és ch paramétereinek értékeket, és azután invoke-oljuk (futtassuk).

kep
7. ábra   A Multiplication() metódus futtatása
 

Az eredményt láthatjuk az ablak jobb alsó részén. Igen ám, de ez egy átalakított eredmény, sem a kérés, sem pedig a válasz nem ilyen, hanem XML formátumú. Kattintsunk az XML fülre az ablak jobb alsó részén (8. ábra).

kep
8. ábra   Kérés és fogadás XML-ben
 

Ezután már nem az átalakított, hanem a teljes kérés, illetve az eredmény fogadása látható XML formátumban.