www.mikrocontroller.net

Forum: PC-Programmierung SerialPort über WebApplication


Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

ich habe mir mit Visual Studio 2008 eine kleine WebApplication 
programmiert die später einmal über unser Heim-Wlannetz erreichbar sein 
soll.

Mit dieser Application möchte ich Befehle über die 
Serielle-Schnittstelle meines PCs (auf dem auch die WebApplication 
läuft) senden und empfangen.
Nur weiß ich leider nicht wie ich das bewerkstelligen kann.
Muss ich dazu eine XML bereitstellen ?

Kann mir jemand bei diesem Problem weiterhelfen ?

Schon einmal schönen Dank im Voraus.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was ist das denn für eine web anwendung? Ist es nur eine ASP seite ist 
es eine richtige Anwendung? In was ist sie denn Programmiert ISAPI, c#, 
vb?

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es handlet sich um eine ASP Seite die in VB programmiert ist.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es wird vermutlich auch mit einer ASP seite gehen, besser ist aber eine 
ASP anwendung zu erzeugen. Das hat den Vorteil das die Schnittstelle 
nicht bei jedem Request neu geöffnet werden muss.

Aber die benutzen der Schnittstelle kannst du einfach mit der .net 
klasse
SerialPort erledigen. 
(http://msdn.microsoft.com/de-de/library/system.io....)

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ansich würde ich es ja auch so machen,
nur steht mir die SerialPort klasse nicht zurverfügung !?
Habe als Projekttyp eine ASP.NET-Webanwendung verwendet !?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was heist sie steht nicht zur verfügung? schreib sie doch einfach mal 
hin - was kommt da für eine Fehlermeldung?

Hast du auch .net2.0 oder höher ausgewählt weil sie in 1.1 noch nicht 
vorhanden war?

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe .NET 3.5
Das Problem ist das ich um einen SerialPort zu deklarieren für 
gewöhnlich das Passende Symbol aus der Toolbox in meine "Form" ziehe.
Dieses Symbol taucht jedoch in der Toolbox nicht auf wenn ich als 
Projekttyp ASP wähle.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie schon gesagt, schreib es einfach mal hin. Ich habe keine Ahnung was 
die Toolbox bei einer ASP seite auch machen soll.

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schreibe ich  "Dim instance As SerialPort" bekomme ich die Fehlermeldung 
"Der Typ "SerialPort" ist nicht definiert."

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Toolbox ist ja auch nicht auf der ASP Seite, sie ist ein Teil von 
VisuaStudio.
Aus ihr kann man sich die Komponenten heraussuchen die man Auf der 
FertigenSeite haben möchte.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du auch das passende import hingeschrieben?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe mal kurz bei google gesucht, es schein scheinbar wirklich nicht 
zu gehen (mir ist aber nicht ganz klar warum - ich hätte maximal ein 
"Access Denied" bei der ausführung erwartet). Im Internet hatte jemand 
empfohlen ein .net Service zu schreiben der den Seriellen port 
anspricht. Und die ASP seite kommuniziert dann mit den Dienst.

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du mir bitte den Link einmal geben ?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da steht auch nichts mehr drin als ich geschrieben habe. Also kein 
Beispiel oder so.

Such doch einfach mal nach "asp SerialPort".

Autor: Dr..gelbschwanz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gab da mal so ein Tool serproxy - das ermöglicht den zugriff auf 
comports im Lan.
http://developer.berlios.de/project/showfiles.php?...
mfg

Autor: Jonas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mit PHP und einem einfachen Webserver würde das schnell und einfach 
gehn.

Nimm XAMPP (unter Windows) und guck dir diese Klasse mal genauer an: 
http://www.phpclasses.org/browse/package/3679.html

Viel Glück!

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich werde es einmal mit PHP versuchen, jedoch brauche ich einen anderen 
Webserver.
Unter XAMPP bekomme ich Apache nicht zum laufen da Port80 ständig vom 
System belegt ist und ich nicht weiß wie ich das abstellen kann.

Was ist den eine gute Alternative ? IIS ?

Autor: Gerry E. (micky01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tony schrieb:
...
> Unter XAMPP bekomme ich Apache nicht zum laufen da Port80 ständig vom
> System belegt ist und ich nicht weiß wie ich das abstellen kann.

Dann läuft bestimmt schon ein anderer Webserver, eventuell sogar der 
bordeigene von MS. Den wirfst Du raus, und fortan hast Du keine Probleme 
mehr mit Apache, zumindest nicht bis zum nächsten "Neustart"

Es könnte in Deinem Fall notwendig sein, mit Administratorrechten zu 
arbeiten...

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versuche schon den ganzen Tag herauszufinden was den Port 
blockiert,leider ohne Erfolg.
Ist IIS nicht der bordeigene von MS ? Den hab ich schon gelöscht.
Ausserdem habe ich nach dieser Anleitung
http://blog.roman-allenstein.de/2009/11/xampp-unte...
eigentlich alle Windows-Funktionen, die den Port blockieren, 
deaktiviert.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach mal
netstat -no
Such den Port 80 raus, schreib dir die Prozess ID ganz hinten auf.
Dann gehste per Strg+Alt+Entf in den Taskmanager und fügst die Spalte 
"PID" hinzu. Dann suchste den Dienst und hast den Namen.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn es ordentlich sein soll dann ist leider php keine Lösung. Ich habe 
nichts gegen php aber ich finde es sehr unschön wenn jedes mal wenn ein 
php script ausgeführt wird das der comport geöffnet und wieder 
geschlossen wird. Was ist wenn die seite von 2 clients gleichzeigt 
geöffnet wird? Aus dem Grund hatte ich auch oben darauf hingeweisen das 
man soetwas als WebAnwednung macht, da gibt es immer nur eine Instanz 
der Anwendung welche den Port im zugriff hat. Jeder Clientzugriff wird 
dann als neuer Thread gemacht. Dies geht meines Wissens mit php nicht. 
Dafür gibt es entweder java oder abend ASP. (oder zur noch auch eine 
ISAPI Dll )

Autor: Peter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe es jetzt mal mit .net (c#) getestet.

Ich kann ohne Probleme eine ASP-Webanwenung mit dem Klasse Serialport 
erzeugen.
Also bitte versuch es weiter mit ASP, wenn du damit schon einmal 
angefangen hast. Es ist für diesen Zweck das bessere.

gestestet mit C#Develop3.1.

(Ich habe es jetzt nicht im IIS getestet, aber das estellen des 
Projektes geht erstmal)

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Simon K.
Das Problem war die PID war 4 also System, das wird im Taskmanager nicht 
aufgerufen.

Das Problem war die HTTP.sys von Windows 7, hatte eine Anleitung 
gefunden mit der man die stoppen kann.
XAMPP und Apache laufen jetzt !

Also ich muss doch nun eine HTML Seite basteln die dann auf die ASP 
zugreift und diese HTML leg ich auf meinen Apache server, oder hab ich 
da jetzt einen Denkfehler drin?

Habe mal in den Code der ASP eine SerialPort-Klasse mit eingebaut.
Bekomme dann zunächst mal auch keine Fehlermeldung.
Rufe ich jedoch den Code in einem Webbrowser auf (über "RUN" in VS), 
bekomme ich bei jedem Aufruf der SeriaPort-Klasse eine Fehlermeldung (in 
dem Webbrowser).

Ich bin gerade leider nicht an meinem Rechner, werde aber heute Abend 
einmal meinen Test-Code posten und einen Screenshot der Fehlermeldung.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du eine asp hast braucht du keine html.

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann es sein das Apache keine .ASPX Dateien wiedergeben kann?
IIS 7 kann das aber oder ?

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok hab XAMPP, mittels eines kleinen Updates, nun dazu gebracht .ASPX 
Dateien zu öffnen.
Nur hilft mir das nicht weiter, da ich immer Fehlermeldungen bekomme 
wenn ich mit VisualStudio erstelte ASPX-Dateien mit XAMPP öffnen möchte.

Hier mal ein Beispiel:
Serverfehler in der Anwendung /.

Parserfehler

Beschreibung: Fehler beim Verarbeiten einer Resource, die für diese Anforderung erforderlich ist. Überprüfen Sie folgende Fehlerinformationen und ändern Sie die Quelldatei entsprechend. 

Parserfehlermeldung: Der Typ "WebApplication1._Default" konnte nicht geladen werden.

Quellfehler: 


Zeile 1:  <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="WebApplication1._Default" %>
Zeile 2:  
Zeile 3:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Quelldatei: /WebApplication1/Default.aspx    Zeile: 1 

Versionsinformationen: Microsoft .NET Framework-Version:2.0.50727.4927; ASP.NET-Version:2.0.50727.4927

Was kann das sein ?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum willst du überhaupt unter Apache eine ASPX seite zum laufen 
bringen, dafür nimmt dann noch lieber den IIS? Ist ja so als ob man 
Samba auf windows zum laufen bringen wöllte.

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das denn unter IIS so ohne weiteres möglich oder bedarf es da auch 
erst wieder einigen Einstellungen ?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ohne wissen geht es auch dort nicht, aber sicherlich einfacher als einem 
Apache ASP beizubringen. Normalerweise sollte deine entwicklumgebung 
(z.b.VisualStudio)) dir alles abnehmen. Zum debuggen stellt es die sache 
im IIS bereit.

Aber die Fragen klingen irgendwie so, das du noch nicht mal ein genauen 
plan hast was du eigentlich machst.

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unter Visual studio läuft ja alles so wie ich das will, mir geht es 
jetzt nur dadrum wie ich die ganze Sage eigenständig auf einem WebServer 
zum laufen bringe.
Mir ist da bei allerdings noch nicht ganz klar in wie weit VS sachen in 
IIS übertragen kann ?
Läuft das über Erstellen -> Veröffentlichen ?

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok hab es jetzt am laufen mit IIS 7.
Jetzt kann ich mich endlich mal wieder dem Problem mit dem SerialPort 
zuwenden.

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt versucht mein Programm zwar zu senden, bekommt aber keine 
Zugrifsrechte auf den COM-Port.
Ausnahmedetails: System.UnauthorizedAccessException: Der Zugriff auf den Anschluss COM4 wurde verweigert. 

ASP.NET darf auf die angeforderte Ressource nicht zugreifen. Gewähren Sie der ASP.NET-Anforderungsidentität Zugriffsrechte für die Ressource. ASP.NET hat eine Standardprozessidentität (gewöhnlich {MACHINE}\ASPNET unter IIS 5 bzw. Network Service unter IIS 6), die verwendet wird, wenn die Anwendung keinen Identitätswechsel ausführen kann. Wenn die Anwendung über <identity impersonate="true"/> einen Identitätswechsel ausführen kann, wird als Identität gewöhnlich der anonyme Benutzer (normalerweise IUSR_MACHINENAME) bzw. der authentifizierte Anfragebenutzer verwendet. 

Um ASP.NET Zugriff auf eine Datei zu gewähren, klicken Sie im Explorer mit der rechten Maustaste auf die Datei, wählen "Eigenschaften" und anschließend die Registerkarte "Sicherheit". Klicken Sie auf "Hinzufügen", um den entsprechenden Benutzer bzw. eine Gruppe hinzuzufügen. Markieren Sie das ASP.NET-Konto, und aktivieren Sie jeweils das Kontrollkästchen für den gewünschten Zugriff.

Hab mal im Gerätemanager geschaut jedoch nichts zum Thema Sicherheit 
gefunden.

Ach ja, ich benutze im mom com0com (0 Modemkabel)um die Funktion zu 
testen.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lege einen neuen Benuzter an, und gib im IIS der ASP seite den Benuzter.

Das mit dem Exporer dürfte bei einem com port nicht gehen, das geht 
meines wissens nur bei Dateien.

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok hab es hinbekommen!
Hatte ganz vergessen den Port auch wieder zu schließen, daher war er im 
dauer Betrieb.

So das schreiben und lesen des SerialPorts über meinen Webbrowser 
funktioniert nun :-)

Jetzt bleibt nur noch ein Hindernis,
wie schaffe ich es das mein Webserver auch über das Internet zu 
erreichen ist.
(benutze jetzt nicht mehr Apache sondern IIS7).

Desweiteren ist sicherlich noch ein Password nicht verkehrt.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du must deinem router sagen das er den port 80 zu deinem PC weiter 
leiden muss. Je nach router steht das unter Nat, Portforwarding, Server 
oder ähnlichen.

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok hab jetzt alles am laufen :)
Schönen Dank für eure Hilfe.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.