Keresés

Új hozzászólás Aktív témák

  • Gregorius

    őstag

    válasz bpx #1633 üzenetére

    Itt valami többrendbeli probléma van, ugyanis nem a ClientInfo-t tárolod el a listába, hanem a callback channelt. Aztán kicsit odébb az ellenőrző loopban foreach (ClientInfo c in clients) ami gyönyörűen elszáll, ugyanis a listában lévő IChessClient elemeket nyilvánvalóan nem tudja ClientInfo-ra konvertálni. Ráadásul ez nem a main threaden jön, hanem egy háttérszálon, vagyis nem a kliens fog egy faultexceptiont látni belőle, hanem az IIS egyszerűen bedarálja és újraindítja a szolgáltatást.

    Ezen túl még olyan hiba is van, hogy egy foreach-en belül módosítod a listát. Ettől az enumerator meghülyül és ugyanúgy exception lesz az eredmény, vagyis ha módosítani akarsz, akkor érdemes a foreach-ben egy ToList()-tel lemásolni a listát (using System.Linq).

    Hogy ezek után működni fog-e azt egyelőre még nem látom, de ezeket mindenképpen meg kellene oldani.

    Továbbá én a helyedben úgy csinálnám meg a service-t, hogy külön dll-ben van, mert aköré könnyebb szervezni az életed mind fejlesztés mind beüzemelés közben. Fejlesztéskor a VS beépített WcfSvcHost fogja neked futtatni a szolgáltatást minden külső függőség nélkül (egy követelmény van csak: Any CPU-ra kell fordítani), telepítéshez meg csak köré kell szervezned egy külön projektként a "bootstrappert" legyen az IIS, Windows Service vagy egy egyszerű konzolos alkalmazás ami folyamatosan írja a logot a képernyőre.

Új hozzászólás Aktív témák

Hirdetés