Akadémia alcsoport

Keresés

Asp.Net - Hosszú művelet folyamatos visszajelzéssel

A legutóbbi, K, febr. 9 2010 11:21 tárgyú bejegyzést Morzel írta. 10 válasz.
  • H, febr. 1 2010 10:51

    • Morzel
    • Az első 10 közreműködő
      Férfi
    • Csatlakozott H, szept. 8 2008
    • Debrecen
    • Bejegyzések 365
    • Pontok 5 965

    Asp.Net - Hosszú művelet folyamatos visszajelzéssel

    Sziasztok!

     

    Kicsit furának hangozhat elsőre de a szerverünk állományrendszeréből kell feltöltenem bizonyos adatokat az adatbázisunkba.

    Megcsinálni már megcsináltam hogy feltöltsön, most egy sima button click eseménye alatt teszi ezt meg. A probléma ott kezdődik hogy viszonylag nagy állományok és sok is van belőlük.

    Jelenleg amikor vége a műveletnek akkor egy result labelbe beleírom hogy mi sikerült és mi nem de a gond az hogy a 1.5 órányi futás után a böngésző ekkor már egy jó ideje csak valami olyasmit ír ki hogy túl sok ideje nem történt semmi az oldalon, szóval csak úgy tudok értesülni arról hogy az egész rendben lezajlott-e hogy belenézek az adatbázisba és megnézem hogy minden a helyén van.

    Olyat szeretnék megvalósítani hogy az eredményjelző labelbe folyamatosan pakolja bele a logbejegyzéseket amikor sikeresen vagy sikertelenül feltöltöttem egy állományt de nem igazán tudom hogy ezt hogyan tudnám elérni szimpla szerver oldali kóddal.

    Kicsit utána olvasgattam az asyncronous modelnek asp.net-ben de igazából amiket írt, minden módszernél azt hangoztatta hogy a rendert lehet késleltetni így nem gondolom hogy ezekkel sokra mennék.


    Ezt olvastam át:

    http://msdn.microsoft.com/en-us/magazine/cc163725.aspx

     

     

    Kérdésem az lenne hogy ilyesmire mi a lehető legkényelmesebb megoldás? Igazából gondolkodtam azon hogy web metódust írok egyetlen egy db feltöltésére, valami labelbe beleteszem a listát hogy miket kell feldolgozni és javascripten végigmegyek ezen a web metódust hívogatva de nem nagyon szeretnék belekezdeni ha lehetséges egyszerűbb megoldás is a dologra.

     

    Morzel

     

    Lementve:
    • Pontok: 65
  • H, febr. 1 2010 11:05 Válasz erre:

    • YellowCat
    • Az első 25 közreműködő
      Férfi
    • Csatlakozott Cs, okt. 9 2008
    • Bejegyzések 365
    • Pontok 5 650

    Re: Asp.Net - Hosszú művelet folyamatos visszajelzéssel

    Engem is érdekel mi lesz a megoldás, anno nhasonló esetnél mi pár másodpercenként hívogattunk js-ből egy wcf service-t, hogy bekukkantsunk, történt-e változás.

    • Pontok: 5
  • H, febr. 1 2010 20:21 Válasz erre:

    • BlueCode
    • Az első 50 közreműködő
      Férfi
    • Csatlakozott Cs, okt. 9 2008
    • Bejegyzések 42
    • Pontok 650

    Re: Asp.Net - Hosszú művelet folyamatos visszajelzéssel

    Létezhet egyáltalán erre tökéletes megoldás? Hiszen ez nem folyamatos kapcsolat és a webszerver nem címezhet meg téged csak úgy.

    Szerintem normális megoldás a szolgáltatások útján keresendő, bár ott sem lesz annyira egyszerű. Esetleg Silverlight? Valahogy a hibakezelésre és a tranzakcióbiztosságra is gondolni kell, hiszen ekkora adatmennyiségnél nem elegendő csupán ránézésből megítélni, hogy valóban minden úgy történt-e, ahogy kellett.

    Az ötletek engem is érdekelnek. :)

     

    • Pontok: 20
  • H, febr. 1 2010 20:28 Válasz erre:

    • balint.marci
    • Az első 10 közreműködő
      Férfi
    • Csatlakozott Szo, szept. 27 2008
    • Budapest
    • Bejegyzések 389
    • Pontok 4 895

    Re: Asp.Net - Hosszú művelet folyamatos visszajelzéssel

     Silverlight és Duplex WCF kommunikáció segíthet.

     

    • Pontok: 20
  • H, febr. 1 2010 20:31 Válasz erre:

    • Morzel
    • Az első 10 közreműködő
      Férfi
    • Csatlakozott H, szept. 8 2008
    • Debrecen
    • Bejegyzések 365
    • Pontok 5 965

    Re: Asp.Net - Hosszú művelet folyamatos visszajelzéssel

    Silverlight kicsit nehézkes asp.net projekt esetében. Amikor asp.net-et írtam, asp.net-re gondoltam... :)

     

    Morzel

    • Pontok: 20
  • V, febr. 7 2010 22:47 Válasz erre:

    • kzoli
    • Az első 500 közreműködő
      Férfi
    • Csatlakozott H, márc. 23 2009
    • Budapest
    • Bejegyzések 4
    • Pontok 35

    Re: Asp.Net - Hosszú művelet folyamatos visszajelzéssel

     Szia,

    Nem tudom az Ajax mennyire jöhet szóba, de talán a következőt kéne megpróbálni:

    A betöltés kódját átenni egy vagy több webservice -be és azokat hívogatni az oldalból, JS async módon. Akár párhuzmossan is. Itt van egy példa is hátha ez segít.

    http://www.codeproject.com/KB/ajax/WebServiceCallApp.aspx

    Mondju ha ilyen hosszú a betöltés akkor  figyeljél arra, hogy nehogy script time out legyen közbe, tehát szükség esetén ezt állítsd nagyobb intervallumra.

    Zoli

     

    • Pontok: 20
  • H, febr. 8 2010 8:33 Válasz erre:

    • Morzel
    • Az első 10 közreműködő
      Férfi
    • Csatlakozott H, szept. 8 2008
    • Debrecen
    • Bejegyzések 365
    • Pontok 5 965

    Re: Asp.Net - Hosszú művelet folyamatos visszajelzéssel

    kzoli:
    A betöltés kódját átenni egy vagy több webservice -be és azokat hívogatni az oldalból, JS async módon. Akár párhuzmossan is. Itt van egy példa is hátha ez segít.

     

    Morzel:
    Kérdésem az lenne hogy ilyesmire mi a lehető legkényelmesebb megoldás? Igazából gondolkodtam azon hogy web metódust írok egyetlen egy db feltöltésére, valami labelbe beleteszem a listát hogy miket kell feldolgozni és javascripten végigmegyek ezen a web metódust hívogatva de nem nagyon szeretnék belekezdeni ha lehetséges egyszerűbb megoldás is a dologra.

     

    Morzel

    Lementve:
    • Pontok: 20
  • H, febr. 8 2010 9:56 Válasz erre:

    • kzoli
    • Az első 500 közreműködő
      Férfi
    • Csatlakozott H, márc. 23 2009
    • Budapest
    • Bejegyzések 4
    • Pontok 35

    Re: Asp.Net - Hosszú művelet folyamatos visszajelzéssel

     

    Morzel:

    Kérdésem az lenne hogy ilyesmire mi a lehető legkényelmesebb megoldás? Igazából gondolkodtam azon hogy web metódust írok egyetlen egy db feltöltésére, valami labelbe beleteszem a listát hogy miket kell feldolgozni és javascripten végigmegyek ezen a web metódust hívogatva de nem nagyon szeretnék belekezdeni ha lehetséges egyszerűbb megoldás is a dologra. 

    Morzel

    Nem tudom mit értesz legkényelmesebb megoldáson, de  a Te problémád abból fakad, hogy túl hosszú ideig tart  a betöltés már egy db-re is nem, hogy még többre. Mivel már megírtad a betöltőt, ezért annak  a kódját áttetni egy webservice-be elég gyorsan megy aztán hozzá megírni a JS-t is egyszerű, tehát gyorsaságban biztos ez a leggyorsabb. Persze itt is előfordulhat az oldaon script time out, de azt egyszerűen orvosolhatod web.config beállítással.

    Ha azonban jobban meg akarjuk nézni a dolgot, ez tipikusan nem egy webes alkalmazás, hiszen a felhasználó nem fog ott ülni a gép előtt 1,5 órát bámulva az üres weboldalt várva, hogy kiírodójon valami, közben fentartva az online kapcsolatot a szerver és a böngésző között. Neked igazából egy olyan dolog kell, hogy egy gombra elindul egy folyamat, aminek az állapotát idönkét le lehessen kérdezni, és esetleg meg lehessen állítani. Persze ennek az indítása is történhet weboldalról. Javasolnék egy olyat, hogy csinálsz 1-2 plussz táblát amiben logolsz, meg vezérled a betöltést, minden egyes betöltés eredményét beteszed egy táblába. Ennek az eredményét meg bármikor le tudod kérdezni egy weboldalon. Látva hogy hol tart, nem kell fentartani az online kapcsolatot. És minden egyes új adatbazáis fájl beolvasása előtt megnézed nem nyomott e valaki a megállítás gombra, amit a vezérlő táblába logolsz. és ha igen nem folytatod tovább a  betöltést.

     UPDATE:

    A lekérdezgetést csinálhatod ugyan abban az oldalban ahol az indítást vagy egy másikon és megoldható, hogy autómatikusan frissüljön bizonyos időközönkét, fentartva a folyamatos online kapcsolat látszatát.

    Zoli

     

     

    • Pontok: 5
  • H, febr. 8 2010 11:57 Válasz erre:

    • Luxii
    • Az első 75 közreműködő
    • Csatlakozott Cs, szept. 25 2008
    • Bejegyzések 33
    • Pontok 465

    Re: Asp.Net - Hosszú művelet folyamatos visszajelzéssel

    Hali,

     

    És ha egy updatepanel-t frissÍtgetnél javascript-el?

     

    Üdv, Luxi

     

    • Pontok: 5
  • K, febr. 9 2010 11:16 Válasz erre:

    • daniel.jozsef
    • Az első 50 közreműködő
      Férfi
    • Csatlakozott K, febr. 3 2009
    • Budapest
    • Bejegyzések 53
    • Pontok 805

    Re: Asp.Net - Hosszú művelet folyamatos visszajelzéssel

     Hát, ez tipikusan nem klasszikus "webes" feladat...

    Ha szigorúan tartani kell magadat az asp.net technológiai kereteihez, akkor a legjobb ötletem nekem is a periodikus polling.

    Illetve... ha ez egy felöltés a böngészőről a szerverre, akkor talán valahogy hozzá lehetne férni kliensoldalon a http session böngésző által látott állapotához... Bár... a böngésző nagyon furcsa mardár. Elvileg request közben nincs JS futtatás. Ha aszinkron postback-kel töltöd fel a fájlt, akkor talán az aszinkron kérés állapotát helyben figyelheted. Talán. Mondjuk alighanem ha van is rá JS hívás, minden böngészőn másképp működik.

    • Pontok: 20
  • K, febr. 9 2010 11:21 Válasz erre:

    • Morzel
    • Az első 10 közreműködő
      Férfi
    • Csatlakozott H, szept. 8 2008
    • Debrecen
    • Bejegyzések 365
    • Pontok 5 965

    Re: Asp.Net - Hosszú művelet folyamatos visszajelzéssel

    Köszönöm mindenkinek a hozzászólásokat, gyanítom marad valami webservice és javascriptes megoldás. Reménykedtem hogy meg tudom úszni simán szerver oldali kódból bár gyanítottam hogy nem.

    Mindenesetre most egyebekkel el vagyok havazva, majd amint lesz időm, megoldom a dolgot.

     

    Morzel

    Lementve:
    • Pontok: 5
Oldal 1 - 1 (11 elem) | RSS