Benutzer mit den meisten Antworten
C# code in eine Datei .asp einfügen

Frage
-
Hallo,
ich habe eine Datei .asp bekommen, in der ich mein C# CODE einfügen muss. Diese Datei .asp erzeugt eine Seite mit einigen Graphiken und wurde mit der Sprache "Javascript" geschrieben. Ich habe mit C# eine Graphik Chart control erstellt. und ich sollte jetzt mein Code in dieser .asp datei einfügen, so dass bei Ausführung meine Graphik(von C#) auf der generierten Seite angezeigt wird.
Wie kann ich das machen?
Vielen Dank im Voraus
Antworten
-
Hi,
das, was Du vor hast, geht nicht. Du kannst in eine Classic ASP Datei, egal, ob diese mit JScript oder VBScript geschrieben wurde, keinen C# Code einfügen und erwarten, dass das läuft.
Du kannst lediglich aus deinem C# Code eine Assembly erstellen, die dann ihre Klassen und Eigenschaften per COM bereitstellt. Siehe dazu:
http://www.codeproject.com/Articles/612604/Best-Practice-in-Writing-a-COM-Visible-Assembly-Cs
http://www.jagjot.com/2014/01/register-c-vb-net-dll-regasm-gacutil/
Sobald diese dann korrekt auf dem Webserver registriert wurde, kannst Du bspw. per:
var Irgendwas = Server.CreateObject( "Deine.ProgId" );
eine Instanz einer deiner Klassen erstellen und dann damit arbeiten.
Dem sind allerdings natürlich auch Grenzen gesetzt, da man mit Classic ASP natürlich lange nicht alles machen kann, was in .NET auch möglich ist. Daher sollten die Ein- und Ausgabeparameter sowie die Methoden, ... sorgfältig gewählt und insbesondere für das Zusammenspiel mit Classic ASP/Script ordentlich gestestet werden.
---
Alternativ kannst Du auch einfach ein zusätzliches ASP.NET Projekt erstellen, deine C# Klasse(n) dort einfügen und dann in der HTML Ausgabe der Classic ASP Anwendung einfach einen URL im img Tag angeben, der auf eben dieses ASP.NET Projekt verweist.
<img src"/ImageCreator/GenerateImage.ashx?<Parameter>" ... />
Ein Beispiel für einen solchen Handler findest Du hier:
Ist zwar VB.NET, das für dich relevante sollte aber problemlos umbaubar sein.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Dienstag, 27. Januar 2015 12:10
- Als Antwort markiert Matsak Dienstag, 3. Februar 2015 12:12
Alle Antworten
-
Hi,
das, was Du vor hast, geht nicht. Du kannst in eine Classic ASP Datei, egal, ob diese mit JScript oder VBScript geschrieben wurde, keinen C# Code einfügen und erwarten, dass das läuft.
Du kannst lediglich aus deinem C# Code eine Assembly erstellen, die dann ihre Klassen und Eigenschaften per COM bereitstellt. Siehe dazu:
http://www.codeproject.com/Articles/612604/Best-Practice-in-Writing-a-COM-Visible-Assembly-Cs
http://www.jagjot.com/2014/01/register-c-vb-net-dll-regasm-gacutil/
Sobald diese dann korrekt auf dem Webserver registriert wurde, kannst Du bspw. per:
var Irgendwas = Server.CreateObject( "Deine.ProgId" );
eine Instanz einer deiner Klassen erstellen und dann damit arbeiten.
Dem sind allerdings natürlich auch Grenzen gesetzt, da man mit Classic ASP natürlich lange nicht alles machen kann, was in .NET auch möglich ist. Daher sollten die Ein- und Ausgabeparameter sowie die Methoden, ... sorgfältig gewählt und insbesondere für das Zusammenspiel mit Classic ASP/Script ordentlich gestestet werden.
---
Alternativ kannst Du auch einfach ein zusätzliches ASP.NET Projekt erstellen, deine C# Klasse(n) dort einfügen und dann in der HTML Ausgabe der Classic ASP Anwendung einfach einen URL im img Tag angeben, der auf eben dieses ASP.NET Projekt verweist.
<img src"/ImageCreator/GenerateImage.ashx?<Parameter>" ... />
Ein Beispiel für einen solchen Handler findest Du hier:
Ist zwar VB.NET, das für dich relevante sollte aber problemlos umbaubar sein.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Dienstag, 27. Januar 2015 12:10
- Als Antwort markiert Matsak Dienstag, 3. Februar 2015 12:12
-
Hallo,
Ich habe eine zusätliches ASP.NET Projekt erstellt.
Visual Studio -> New Projekt -> Visual C# -> ASP.Net WebApplication ->Template(Empty) -> File -> New File->HTLM Page
Ich versuche seit heute Morgen meine C# Klassen dort hinzufügen. Aber ich weiß nicht, wie das geht.
Veilleicht hat jemand ein beispiel CODE, wie man das macht
Danke
-
Hi,
es kommt darauf an, wie Du es nun machen willst. Per COM oder als ASP.NET Handler, der dann im src Attribut eines img Tags eingebaut wird?
Für beide Varianten hatte ich dir oben bereits Links gepostet. Welche Schwierigkeiten hast Du denn genau?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo,
Ich habe folgende zeile in asp dateien geschriebenCode:<%@ Assembly Src="C:\Users\GMa\Desktop\Chart1\Chart1\bin\Debug" %>
The @ command can only be used once within the Active Server Page. /internal/TestAngel/anonymous/div.asp, line 939
die div.asp dateien fängt so an:<%@ language="JScript" %> <script language="javascript" runat="server"></script> <% var cn = Server.CreateObject("ADODB.Connection"); var ProvStr = "Provider=SQLNCLI10; Data Source=sql3; Initial Catalog=BarForce; Integrated Security=SSPI;" cn.Open(ProvStr); USW..................... ................... ..................
Für Ihre Hilfe werde ich sehr Dankbar
Gruß -
Hi,
wie bereits im ersten Posting geschrieben: Das geht nicht. Du kannst nicht ASP und [ASP].NET vermischen. Die Technologien haben rein gar nichts miteinander zu tun.
Schau dir bitte mein erstes Posting nochmal genau an und gehe insbesondere die dort enthaltenen Links durch. Dort steht letztendlich alles, was Du brauchst.
Deine .NET Assembly musst Du als COM Komponente bereitstellen, diese dann auf dem Webserver hinterlegen und korrekt registrieren. Danach kannst Du dann, wie von mir gezeigt, diese Komponente ähnlich wie deine Zeile mit ADODB.Connection, verwenden.
Eine Grundlagenschulung hierzu sprengt den Rahmen des Forums bei weitem. Wenn es gar nicht geht, kann ich dir anbieten, dich dabei individuell aber kostenpflichtig zu unterstützen. Es wäre daher für dich wahrscheinlich sinnvoller, dich mit den Links nochmal eingehend zu beschäftigen und meine Ratschläge zu beherzigen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Aleksander Chalabashiev Freitag, 30. Januar 2015 11:34
-
Hallo Stefan,
Ich möchte jetzt Per COM machen. Wie bei folgende Link http://www.codeproject.com/Articles/612604/Best-Practice-in-Writing-a-COM-Visible-Assembly-Cs möchte ich meine Assembly als COM bereitstellen. bei der erste Klasse bekomme ich folgende Fehler. Ich mache eine Bild von meinem Class View. Danke im voraus
Error 2 The type or namespace name 'BarfocedataSet' could not be found (are you missing a using directive or an assembly reference?)
-
Hi,
die Klasse, von der Du ableiten willst, heißt ja auch nicht so. zum einen fehlt ein "r", zum anderen stimmt die Groß- und Kleinschreibung nicht. Prüf das bitte nochmal. Wenn ich das richtig sehe, sollte BarForceDataSet lauten.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Stefan,
mein .NET Assembly habe ich schon als COM Komponente gestellt.
Jetzt habe ich schwierigkeiten diese Assembly auf dem Webserver hinzulegen und zu registrieren. Welche Befehle muss ich bei cmd.exe geben, um von "C:\Users\Matsak>" auf "C:\WINDOWS\Microsoft.NET\Framework\v3.5>" zu Wechseln?
Der regasm.exe steht bei mir auf folgende link ( C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727).
ich muss jetzt damit mein DLL in C:\WINDOWS\Assemby speicher
Danke
-
Hallo,
ich habe aus dem C# Code eine Assembly erstellt und korrekt auf dem WebServer registriert. Aber mein Assembly wurde auf C:\Windows\Microsoft.NET\assembly\GAC_MSIL\TestDot\v4.0_1.0.0.0__7d9ae505f47c15ea\TestDot.dll installiert, anstelle von C: \ Windows \ Assembly \. Grund dafür ist: ich benutze ein .Net 4.0 Assembly und die Framework-Version 4.0 hat einen neuen separaten GAC an dieser Stelle.
Wie ich in meinen erstes Postinggesagt habe, ich kenne mich nicht mit ASP. Ich habe die ASP Datei nur von jemandem bekommen, der nicht mehr da ist.
Welche code muss ich jetzt in div.asp geben, um mein dll auszuführen?
Vielen Dank im voraus