Opened 13 years ago

Closed 13 years ago

#163 closed Fehler (fixed)

Netzwerk-Dienste (WebServer LAN2)

Reported by: Melanie Hermann Owned by: Melanie Hermann
Priority: kurzfristig Milestone:
Component: Gesamtsystem Version:
Severity: Zu prüfen Keywords:
Cc:

Description

TODO:
Der Webserver startet nicht, wenn er nur auf LAN2 laufen soll.
Trace-Meldung set_ports_option: cannot bind to 160.221.45.8:80: 10038.

Change History (8)

comment:1 by Melanie Hermann, 13 years ago

Fehler 10038 bedeutet: WSAENOTSOCK, An operation was attempted on something that is not a socket.

comment:2 by Melanie Hermann, 13 years ago

Resolution: fixed
Status: newclosed

Dieses Problem scheint nur bei meinem Debug-GC vorzukommen.
Bei den anderen GCs funktioniert das ohne Probleme.

Bei meinem Debug-GC gab es schon öfters Probleme mit der LAN2.

comment:3 by Melanie Hermann, 13 years ago

Resolution: fixed
Status: closedreopened

comment:4 by Melanie Hermann, 13 years ago

Doch kein Einzelfall!
GC-Klimaraum weißt das gleiche Verhalten auf!

comment:5 by Melanie Hermann, 13 years ago

bind() schlägt fehl mit folgendem Windows Socket Error Code: WSAEADDRNOTAVAIL
Cannot assign requested address.
The requested address is not valid in its context. This normally results from an attempt to bind to an address that is not valid for the local computer. This can also result from connect, sendto, WSAConnect, WSAJoinLeaf, or WSASendTo when the remote address or port is not valid for a remote computer (for example, address or port 0).

comment:6 by Melanie Hermann, 13 years ago

Problem:
LAN2 bekommt erst nach ein paar Sekunden die IP-Adresse vom DHCP zugewiesen. Wenn sich nun der WebServer auf diese Schnittstelle verbinden funktioniert das nicht.
Wenn man aber bei Programmstart ein Sleep von 20 Sekunden einbaut und somit die LAN2 eine gültige Adresse besitzt, wenn der Webserver starten will, funktioniert alles ohne Probleme.

comment:7 by Melanie Hermann, 13 years ago

Severity: FehlerZu prüfen

DONE:

  • Webserver funktioniert ohne Probleme sobald LAN2 eine Adresse vom DHCP zugewiesen bekommen hat

Änderungen:

  • ReadIpAVarsFromRegistry() aufgesplittet in ReadMacAdr1FromRegistry() und ReadDhcpIpsRegistry()
  • Beim Programmstart in wird in InitInstance() erstmal nur ReadMacAdr1FromRegistry() aufgerufen
  • In SecTimerFunc() wird zyklisch, alle 30 Sekunden, ReadDhcpIpsRegistry() aufgerufen
  • ReadMacAdr1FromRegistry(): Hier wird einmalig die Macadresse der LAN1 ausgelesen
  • ReadDhcpIpsRegistry(): Hier wird zyklisch überprüft ob LAN1 oder LAN2 eine neue IP-Adresse vom DCHP erhalten haben. Wenn ja, werden alle Netzwerkdienste (Webserver, DSfG-DFÜ, ModbusIP und VNCServer) neugestartet.
  • dsfgmana.cpp, C_DSfGDfue::Disconnect(): Hier hat folgender Codeausschnitt gefehlt, wenn der Dienst neugestartet wird.
    if (m_SendOverlapped.hEvent != NULL)
    {
     WSACloseEvent( m_SendOverlapped.hEvent);
     m_SendOverlapped.hEvent = NULL;
    }
    
  • dsfgmana.cpp, WriteThread_DsfgDfue(): If-Abfrage vor Eventerstellung eingefügt.
    if (NULL == DsfgDfue->m_SendOverlapped.hEvent)
    	DsfgDfue->m_SendOverlapped.hEvent = WSACreateEvent();
    
Last edited 13 years ago by Melanie Hermann (previous) (diff)

comment:8 by Melanie Hermann, 13 years ago

Resolution: fixed
Status: reopenedclosed
Summary: WebServer LAN2Netzwerk-Dienste (WebServer LAN2)
Note: See TracTickets for help on using tickets.