Kan man Cacha globalt på servern? Alltså inte ApplicationsCachen.
Alla Applikationer ska dela på en global cache. typ som Global Assembly Cache fast det fungerar som ApplicationsCachen.
Eller måste vi då ha en State Server eller Cache server?
problematik... samma object är Cachat på olika applikationer... inte bra, sparar över... sql dependencies funkar inte här för att alla olika object kommer från samma tabel.
Kan man Cacha globalt på servern? Alltså inte ApplicationsCachen.
Titta på COM+ där kan du skapa ett "Singelton objekt" som instansieras första gången du kallar på det, sedan så har du kvar objektet i minnet hela tiden och vilken applikation som helst kan anropa detta objekt. Du får alltså en global cach som alla dina program (som du skriver) kan använda sig av.
Jag ska cacha egendefinerade objekt så som user-objekt, artikel-objekt m.fl. oftast när man hämtar ett object och jobbar med ett så anropas det många gånger, därmed vill jag ha det i en cache.
Sedan kan samma objekt anropas på en annan applikation, och då kan den inte ligga i två olika cachar, då kan man enkelt skriva över...
kort och gott kan man säga att det är en admin till x antal clienter. klient-applikationerna både presenterar och modifierar innehåll i objekten,
NET Remoting måste väl kunna lösa mina problem? måste läsa på ....
Remtoing är en sämre lösning än vad ett COM+ object är, dels så är det långsammare dels så missar du funktionallitet som finns inbyggt i COM+ (typ transactionsstöd)
COM+ är inte speciellt svårt, det enda som krävs är att ditt object ärver from ServiceComponent samt några attribute på klassen/methoderna så har du ditt object som kan köras i COM+
Okej, nu har jag gjort som jag tror ska funka, och det gör det när sparar i Gac:en (men bara innom applikationen) men inte när jag kör regsvcs och den ligger i Componentservices... då hittar den inte ens assemblyn när jag använder "using EdgeII.GlobalCache;"
vart ska den ligga i gacen eller i Componentservices?
Alltså jag vill få min cache att funka globalt på servern mellan applikationer och inte för varje Application separat.
Jag använder inte visual studio .net, det är nog därför som jag inte förstår vad som händer när man använder "add reference", vs gör en massa i bakgrunden. Och använder jag Visuel Web Devoloper 2005 när jag klickar "add reference" kan jag välja .net/COM/Browse. Har jag installerat den i gacen finns den under .net fliken.. så skapas en referens-tagg i Web.config. Här funkar cachen på applications- och inte på server-nivå.
browsar jag fram dll:en, läggs den i bin catalogen.. det kan ju inte vara meningen heller.
Under COM får jag inte upp den alls. men väljer jag nån dll här så läggs en kopia i /bin, varför? då blir den väl inte global på servern?
Je ne comprend pas!!!
PS. jag har både installerat den med gacutil och regsvcs
Du kan enkelt kolla om du kör din komponent från COM+ eller ej.
Du går in under COM+ och kolla alla körande processer (gäller endast de som körs som services). Se till så just din komponent inte körs. Starta sedan din applikation och kör den, om allt fungerar så skall din komponent nu finnas under körande komponenter.
Tack för alla svar Gladh, nu har jag bifogat min.dll i bin men den verkar inte trigga den i COM+. Se bild 1.
Behöver det inte vara nån metatag i aspx sidorna som talar om att det är COM+ jag ska använda och inte den i bin? för nu triggas den i bin ju (Det är samma dll, version, applikations nr m.m).
OBS! jag kan starta com+ manuellt, så den fungerar uppenbarligen. Den har egenskapen activation server.
Hur ska activation context vara? se bild 2.
Eller är det Identity egenskapen, vad ska den vara tro? se bild 3 (OBS det står längs ner i prop-fönstret, Server app kan inte köras under system service accounts)
Jag kan inte förstå varför du har sådan problem, det fungerar utan problem för mig.
Jag sätter bara en referens till den DLL som jag registrerade i COM+ och så fungerar det, kanske skall säga att det INTE kopieras ner en dll till BIN katalogen för webprojektet, utan där ligger endast webapplikations filerna.
Jag ser också att min komponent startar genom att den körs i running process.
Här kommer 4 bilder.
1. Där ser du min komponent samt att den inte kör.
2. Där ser du sökvägen till min komponents dll.
3. Debugläge i .NET som visar att koden körs
4. Visar att min komponent nu är aktiv.
Men eftersom min dll inte är en type library så kan jag inte göra en Wrapper av den. Type Lib är bara gamla COM och inte .net assemblies som det här är...