22. marts 2003 - 18:32Der er
20 kommentarer og 1 løsning
Kan ikke finde dll
Hey Jeg har læst en masse artikler her på sitet om at forbinde en hjemmelavet dll til min aspx side, men uden at det vil lykkedes for mig. Jeg har en dll som hedder "hej.dll". den har jeg placeret på web-serveren i /bin/hej.dll.
min codebehind der således ud (C#)
public class Handler : Page { protected Label Label1; protected void Button1_Click(Object sender, EventArgs e){ Label1.Text = hej.Test.get(); } }
og i min aspx fil står <%@ Page Inherits="Handler" Src="code.cs" %>
Jeg har set et sted noget med <%@ Import Namespace="hej" %> men kan ikke lige lure hvordan og hvorledes...?
Compileren siger "CS0246: The type or namespace name 'hej' could not be found (are you missing a using directive or an assembly reference?)"
Jeg er ikke helt sikker på hvad du mener. hvad betyder <%@ Register TagPrefix="Wrox" Namespace="Wrox.ThePhile.Web.Controls.Server" Assembly="Wrox.ThePhile"%>? og hvad skal der stå istedet for Wrox...?
min aspx 'top' så/ser sådan ud <%@ Page Inherits="Handler" Src="code.cs" %>
repsak>> jeg går ud fra at du skal bruge koden fra hej.dll i din .cs fil?
i så fald skal du skrive
using hej;
i toppen af filen, og ikke noget i din .aspx fil. Derudover skal du huske at fortælle compileren fra hvilken dll-fil du vil bruge kode fra, dette gøres med /r:... altså f.eks. /r:hej.dll
cyberfessor-> tror at du har en god pointe med det sidste du siger! Men hvordan fortæller jeg compileren det? Min fil "code.cs" bliver jo ikke compilet på min comp men på serveren... Hvordan gør jeg? :-)
vi taler muligvis forbi hinanden... Hvis vi antager at jeg har en fil: code.cs som indeholder mine events til aspx-siden. F.eks. button_click(...) osv Og en fil hej.cs som ER compilet til hej.dll Jeg har uploadet min dll til /bin/hej.dll og min cs-fil til /code.cs Inde i min button_click ønsker jeg så at udføre en metode som ligger i hej.dll... Er det ikke meningen at code.cs skal comlipes på serveren...?
repsak>> nej... det er det faktisk ikke meningen.. man kan godt gøre det på den måde, dog miste man muligheden for at kontrolle hvordan compileringen skal foregå... så derfor vil jeg anbefale at gøre det på den "rigtige" måde. Compiler alle dine codebehindfiler til en dllfil, hedder som regel det samme som websitet, f.eks. burningice.dk.dll, og læg den i din bin-mappe sammen med hej.dll.
Så er det lige ved at lykkedes... Men hvordan fortæller jeg aspx'en at den skal hente data fra min fil som nu hedder code.dll? ikke noget namespace class = Handler
ja har en klasse Handler... Ligger IKKE i et namespace (SKAL den det?) den ER compilet og lagt i bin-mappen. Den ER også linket sammen med min hej.dll og kan compile dette Label1.Text = ""+Test.get();
nej.. den behøver ikke at være i et namespace... det virker bare mere overskueligt hvis den er.. det er lidt ligesom at lægge alle sine filer i roden af c:\ fremfor at sortere dem i mapper ;)
okay.. du har altså kunne kompile din (lad os kalde den NetCode).dll, og den ligger i bin mappen sammen med hej.dll
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Could not load type 'NetCode.Handler'.
Source Error:
Line 1: <%@ Page Inherits="NetCode.Handler" %> Line 2: Line 3: <html>
her er den ene: //--------------------------- using System.Net; using System.Net.Sockets; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System; using hej;
namespace NetCode{ public class Handler : Page { protected Label Label1; protected TextBox TextBox1; protected Socket sck = null;
herm... jeg har rodet lidt rundt på nettet, og det viser sig at denne fejl typisk kommer når folk enten har glemt at compile sin .cs fil eller lagt den i den forkerte mappe (skal være bin-mappen i roden af ens application). Dette er dog ikke tilfældet her, så en anden fejlkilde kunne være at bin-mappen ikke har de rigtige rettigheder. Prøv at tjek om aspnet-useren har read-permissions, da den jo ellers ikke vil kunne læse dine dllfiler ;)
når jeg skriver /bin, så referer /'et til RODEN af din applikation, dvs. i de fleste tilfælde roden af dit website.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.