Laden...

Mal wieder: Mono & ASP.NET auf Apache2/Debian-Linux?

Erstellt von 7.e.Q vor 14 Jahren Letzter Beitrag vor 14 Jahren 790 Views
7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 14 Jahren
Mal wieder: Mono & ASP.NET auf Apache2/Debian-Linux?

Hi Leute,

aus purer Langeweile versuche ich gerade mal wieder, auf meinem Linux Server ASP.NET mit Mono zum Laufen zu bekommen. Erste Schritte schlagen grandios fehl. Ich erhalte beim Aufruf der frisch erstellten Website folgende Fehlermeldung:

Parser Error

Description: Error parsing a resource required to service this request. Review your source file and modify it to fix this error.

Parser Error Message: Assembly System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 not found

Folgende Pakete mit dem Begriff "mono" drin sind auf meinem Server installiert:

ii libapache2-mod-mono 1.9-1 Apache module for running ASP.NET applicatio
ii libmono-accessibility2.0-cil 1.2.2.1-1etch1 Mono Accessibility library
ii libmono-corlib1.0-cil 1.9.1+dfsg-6 Mono core library (1.0)
ii libmono-corlib2.0-cil 1.9.1+dfsg-6 Mono core library (2.0)
ii libmono-data-tds1.0-cil 1.9.1+dfsg-6 Mono Data library
ii libmono-data-tds2.0-cil 1.9.1+dfsg-6 Mono Data Library
ii libmono-dev 1.9.1+dfsg-6 libraries for the Mono JIT - Development fil
ii libmono-i18n1.0-cil 1.9.1+dfsg-6 Mono I18N libraries (1.0)
ii libmono-i18n2.0-cil 1.9.1+dfsg-6 Mono I18N libraries (2.0)
ii libmono-microsoft-build2.0-cil 1.2.2.1-1etch1 Mono Microsoft.Build libraries
ii libmono-mozilla0.2-cil 1.9.1+dfsg-6 Mono Mozilla library
ii libmono-peapi1.0-cil 1.2.2.1-1etch1 Mono PEAPI library
ii libmono-peapi2.0-cil 1.2.2.1-1etch1 Mono PEAPI library
ii libmono-relaxng1.0-cil 1.2.2.1-1etch1 Mono Relaxng library
ii libmono-security1.0-cil 1.9.1+dfsg-6 Mono Security library
ii libmono-security2.0-cil 1.9.1+dfsg-6 Mono Security library
ii libmono-sharpzip0.84-cil 1.9.1+dfsg-6 Mono SharpZipLib library
ii libmono-sharpzip2.84-cil 1.9.1+dfsg-6 Mono SharpZipLib library
ii libmono-sqlite2.0-cil 1.9.1+dfsg-6 Mono Sqlite library
ii libmono-system-data1.0-cil 1.9.1+dfsg-6 Mono System.Data library
ii libmono-system-data2.0-cil 1.9.1+dfsg-6 Mono System.Data Library
ii libmono-system-runtime1.0-cil 1.2.2.1-1etch1 Mono System.Runtime library
ii libmono-system-web1.0-cil 1.9.1+dfsg-6 Mono System.Web library
ii libmono-system-web2.0-cil 1.9.1+dfsg-6 Mono System.Web Library
ii libmono-system1.0-cil 1.9.1+dfsg-6 Mono System libraries (1.0)
ii libmono-system2.0-cil 1.9.1+dfsg-6 Mono System libraries (2.0)
ii libmono-winforms2.0-cil 1.2.2.1-1etch1 Mono System.Windows.Forms library
ii libmono0 1.9.1+dfsg-6 libraries for the Mono JIT
ii libmono1.0-cil 1.9.1+dfsg-6 Mono libraries (1.0)
ii libmono2.0-cil 1.9.1+dfsg-6 Mono libraries (2.0)
ii mono-2.0-devel 1.9.1+dfsg-6 Mono development tools for CLI 2.0
ii mono-apache-server 1.9.1-3 ASP.NET backend for mod_mono Apache module
ii mono-apache-server2 1.9.1-3 ASP.NET backend for mod_mono2 Apache module
ii mono-common 1.9.1+dfsg-6 common files for Mono
ii mono-gac 1.9.1+dfsg-6 Mono GAC tool
ii mono-gmcs 1.9.1+dfsg-6 Mono C# 2.0 and C# 3.0 compiler for CLI 2.0
ii mono-jit 1.9.1+dfsg-6 fast CLI JIT/AOT compiler for Mono
ii mono-mcs 1.9.1+dfsg-6 Mono C# compiler for CLI 1.1
ii mono-runtime 1.9.1+dfsg-6 Mono runtime
ii mono-xsp-base 1.9.1-3 base libraries for XSP 1.1
ii mono-xsp2 1.9.1-3 simple web server to run ASP.NET application
ii mono-xsp2-base 1.9.1-3 base libraries for XSP 2.0

Ein Aufruf von gacutil2 -l erzeugt folgende Ausgabe (gekürzt):

[...]
System.ServiceProcess, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
System.Web.Services, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
[...]

Wie man sieht, ist die angemeckerte System.Web.Extensions Assembly durchaus vorhanden. Auch gacutil (ohne 2) -l liefert mir dieses Ergebnis zurück. Der PublicKeyToken stimmt bei beiden mit dem aus der Fehlermeldung überein.

Kann mir jemand verraten, wieso Mono den/die/das Assembly System.Web.Extensions so nicht findet?

Danke

Grüße,
Hendrik

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 14 Jahren

Okay, ich hab das Problem gefunden, weiß aber noch nicht, wie ich es gelöst bekomme:

Ich habe 2 (!) GACs:

  1. /usr/lib/mono/gac
  2. /usr/local/lib/mono/gac

gacutil[2] greift dabei per default auf /usr/local/lib/mono/gac zurück, wohingegen der Apache und sein Mono-Anhängsel anscheinend mit /usr/lib/mono/gac arbeitet. Ich konnte die DLL per gacutil uminstallieren. Aber das kann ja nicht der Sinn der Sache sein, oder?

Frage ist nun: welcher Pfad ist der richtige und wie bringe ich entweder gacutil oder apache bei, dass es automatisch den richtigen Pfad verwenden soll?

Danke!

Grüße,
Hendrik

699 Beiträge seit 2007
vor 14 Jahren

Hallo Hendrick,

hab zwar noch nie selber versucht Mono unter Linux zu installieren, aber als erste Lösung würde mir ein Symlink einfallen 😃

Biege den /usr/lib/mono/gac auf /usr/local/lib/mono/gac um.

Interessant wäre auch die verwendete Distribution 😉

Grüße Stephan

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 14 Jahren

Die Distro ist Debian Lenny. Symlink werd ich mal probieren... 👍

699 Beiträge seit 2007
vor 14 Jahren

Hallo Hendrik,

ich hab mal auf meinem Server Mono unter Debian Etch installiert.

/usr/lib/mono/gac scheint in dem fall der richtige Ort zu sein. Kann es sein, das du den GAC von Hand installiert hast? Das würde dann auch erklären, warum das unter /usr/local zu finden ist.

Auf jedenfall kannst Du das auch in der /etc/mono-server/mono-server-hosts.conf umbiegen. Dort scheint mir der beste Ort das zu machen 😃

Grüße Stephan

3.170 Beiträge seit 2006
vor 14 Jahren

Hallo,

hast Du irgenwann mal von einer anderen Distri her upgegraded oder mono nochmal von irgendwo anders her installiert als aus dem Original Debian-Repo?

Ich habe ebenfalls Mono unter Debian Lenny am laufen, aber nur einen gac, den in /usr/lib/mono.

In /usr/local/lib habe ich gar kein mono Verzeichnis...

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 14 Jahren

Ja, stimmt. Jetzt wo ihr das sagt... ich hab mal vor einiger Zeit versucht gehabt, Mono direkt aus den Sourcen zu übersetzen, was fehlschlug. Ich gehe davon aus, dass der /usr/local GAC also trotz der fehlgeschlagenen Übersetzung daher rührt.

Dennoch ist mir schleierhaft, warum in dem regulären GAC bei mir so viel fehlt.

3.170 Beiträge seit 2006
vor 14 Jahren

Hallo,

Dennoch ist mir schleierhaft, warum in dem regulären GAC bei mir so viel fehlt.

Ich könnte mir schon vorstellen daß die fehlgeschlagene Installation aus den Sources dafür verantwortlich ist. Offentsichtlich hat diese ja auf Deinem System einige Reste hinterlassen. Möglicherweise hat das die Installation aus dem Repo beeinflusst.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca