kackb00n: IIS 10 läd Assemblies aus bin-Verzeichnis nicht mehr

Hallo,

Hier mal die Verzeichnisstruktur:

/mobilesuite/

/mobilesuite/bin/

/mobilesuite/bin/VmLogger.dll

/mobilesuite/test.aspx

Und der relevante Code der test.asxp:

<% @Page Language= "c#" Debug="true" %>
<% @Import Namespace="VmLogger" %>
<%
	Logger.Initialize(@"E:\VMMSlog");
	Logger.debug("test");
%>

Die Klasse Logger wird im namespace VmLogger deklariert:

namespace VmLogger
{
	public static class Logger
	{
		/* Implementation */
	}
}

Das ganze lief ohne Probleme seit mehreren Monaten, doch neuerdings kann der VmLogger-Namespace nicht mehr gefunden werden, als ob die /mobilesuite/bin/VmLogger.dll nicht mehr geladen wird.

Hier mal die genaue Meldung vom IIS:

Serverfehler in der Anwendung /. Kompilierungsfehler Beschreibung: Fehler bei der Kompilierung einer Ressource, die zur Verarbeitung dieser Anforderung erforderlich ist. Überprüfen Sie die folgenden spezifischen Fehlerdetails, und ändern Sie den Quellcode entsprechend.

Compilerfehlermeldung: CS0246: Der Typ- oder Namespacename 'VmLogger' konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)

Quellfehler:

Zeile 1: <% @Page Language= "c#" Debug="true" %>

Zeile 2: <% @Import Namespace="VmLogger" %> (diese Zeile ist rot hervorgehoben)

Zeile 3: <%

Zeile 4: Logger.Initialize(@"E:\VMMSlog");

Quelldatei: c:\VMMobileSuite\installed\www\mobilesuite\test.aspx Zeile: 2

Versionsinformationen: Microsoft .NET Framework-Version:4.0.30319; ASP.NET-Version:4.7.2556.0

Ich habe schon den IIS komplett de- und wieder installiert, jedoch immernoch das gleiche Problem. Nun bin ich ratlos, wie kann ich den Fehler finden und beheben?

MfG

  1. Hallo kackb00n,

    ich hab das schon länger nicht mehr gemacht, aber ich meine, ein Import reicht nicht, du musst auch die Assembly referenzieren.

    In C#-Speak formuliert: Der import ist das using-Statement, aber ohne eine Projektreferenz auf die DLL gibt das nur Fehlermeldungen.

    Ich habe den IIS 10 nicht, aber mein 7.5er hat für das Web eine Seite ".net Kompilierung" und da ein String[] Assemblys. Im IIS siehst Du da eine Liste, die sich aus den diversen Config-Quellen zusammensetzt, die für ein Web gelten. In der web.config gibt's unter <system.web> eine Rubrik <compilation> und darin <assemblies>, da musst Du meines Wissens deine VMLogger Assembly eintragen. Sonst fehlt der von ASP.NET erzeugten DLL die Referenz.

    Rolf

    --
    sumpsi - posui - clusi
    1. Hallo Rofl,

      genau da liegt mein Problem, der IIS gibt mir als Info bei der Assembly-Konfiguartion folgendes an:

      Assemblys: Gibt Verarbeitungsdirektiven für die ASP.NET-Kompilierung an. Mit "*" werden alle Assemblys im Verzeichnis "bin" angegeben.

      Und genau da ist die DLL ja drin.

      MfG

      1. Ich hab den Fehler gefunden. Das bin-Verzeichnis war einfach an der falschen Stelle =/

        1. Hallo kackb00n,

          War /mobilesuite ein Unterverzeichnis deiner IIS Application? Sorry, nicht drauf geachtet.

          Könntest ja auch mal probieren, bin\* der Assemblyliste hinzufügen, wenn du den Logger nur für die mobile Suite brauchst.

          Rolf

          --
          sumpsi - posui - clusi