[.NET] Waarom laadt Webapp verkeerde assemblys

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Hoogie2004
  • Registratie: Mei 2005
  • Laatst online: 07:22
Hoi allemaal,

De omgeving is SharePoint 2007 SP1.
We hebben 2 webapplicaties (A en B) welke beide het Entity FrameWork 1.0 van .NET 3.5 gebruiken.
Webapp A heeft een document-library met een eventhandler. Deze eventhandler heeft wat functionaliteit om gegevens uit de database te halen, om vervolgens wat handelingen te doen (taken zetten).

Het probleem:
De functionaliteit om de taken te verzetten, wordt afgetrapt vanuit webapp B, een webpart in sharepoint, welke ervoor zorgt dat de eventhandler van webapp A wordt afgetrapt. Vervolgens vindt Webapp B dat hij alle DLL's van Webapp A moet gaan inladen. Dit zorgt uiteindelijk voor Entity Framework errors, omdat de Entity Modellen van beide Webapplicaties licht afwijken, dit is meteen het grootste probleem.

We hebben al een hoop research zitten in het laden van verschillende entity modellen in hetzelfde proces, echter is dit onmogelijk als beide entity modellen dezelfde naam hebben (nodig i.v.m. merging, het is onderdeel van het fundament). Beide webapplicaties hebben een eigen versie van het fundament. Als beide entity modellen exact gelijk zijn, krijgen we ook errors.

We hebben gevalideerd dat de code van beide webapps nergens verwijst naar een dll van de andere webapp.

Huidige workaround:
We dwingen webapp B om altijd de Entity DLL van webapp B te gebruiken, ook voor dll's van webapp A. Hierdoor is er maar 1 dll die alles van entity framework afhandelt, en zijn er geen 2 contexten in hetzelfde proces.

De vragen zijn:
Waarom laadt webapp B de dll's van webapp A. De eventhandler zou toch afgehandeld moeten worden door zijn eigen webapp A.
Is er een andere optie dan het gebruiken van de assembly-redirect?

#edit: Versie EF aangepast naar aanleiding van commentaar hier beneden

[ Voor 5% gewijzigd door Hoogie2004 op 29-07-2010 10:52 ]

My iRacing profile | Strava


Acties:
  • 0 Henk 'm!

  • OMX2000
  • Registratie: Januari 2001
  • Nu online

OMX2000

By any means necessary...

Ik hoop dat een van de SharePoint guru's kan reageren (ben ik dus NIET). Staan de gebruikte DLL's van webapp A in de GAC? Zo ja dan zou het zo maar kunnen zijn dat webapp B die uit de gac leest.

Je zou het op kunnen lossen door versie nummers te gebruiken, en de apps te laten refereren naar een assembly met een specifiek versie nummer.

<mierenneuken>By the way, er is geen Entity Framework 3.5. Je bedoelt waarschijnlijk Entity Framework 1.0 die in .NET Framework 3.5 SP1 zit.</mierenneuken>

Dè developers podcast in je moerstaal : CodeKlets Podcast


Acties:
  • 0 Henk 'm!

  • Hoogie2004
  • Registratie: Mei 2005
  • Laatst online: 07:22
Alle dll's staan inderdaad in de GAC (op een enkele uitzondering na, GUI componenten deze staan in de bin)
De versienummers hebben we al in gebruik. Beide webapps refereren al naar hun eigen DLL's i.c.m. versienummer. Tevens zijn de DLL's per webapp gesigned met andere SNK's (alleen het fundament deelt de SNK tussen alle webapps, maar het fundament heeft per webapp een eigen versie waarnaar verwezen wordt)

[ Voor 30% gewijzigd door Hoogie2004 op 29-07-2010 10:53 ]

My iRacing profile | Strava


Acties:
  • 0 Henk 'm!

  • Hoogie2004
  • Registratie: Mei 2005
  • Laatst online: 07:22
Voor de geinteresseerden, het gedrag is van de webapp's is by design.
Getuige deze post en volgende discussie van collega op MSDN.
http://social.msdn.micros...db-4802-8083-1e364775daee

Is dus een architectuur-probleem.

My iRacing profile | Strava