Hallo Zusammen,
ich habe eine Client-Server - Anwendung mit WCF programmiert. Funktioniert prima, bis auf einen Timeout.
Problem:
Ich starte ein Fenster, die erforderlichen Daten werden vom Server abgeholt. Allerdings wird die Client-Verbindung nach dem erhalten der Daten nach ein paar Sekunden abgebrochen. Hier ein Auszug aus meiner Log-Datei:
19.07.2012 11:43:55 - ===>>> Klasse : DataAcquisition
Methode: public void Subscribe()
Ein Client wurde angemeldet!
19.07.2012 11:43:55 - ===>>> Klasse : DataAcquisition.cs
Methode: public ConnectionErrorColor Connect()
Returnwert: Ready
19.07.2012 11:43:55 - ===>>> Klasse : DataAcquisition.cs
Methode: public bool CheckUserName(string userName)
Returnwert: True
19.07.2012 11:43:55 - ===>>> Klasse : DataAcquisition.cs
Methode: public int GetUserId(string userName)
Returnwert: 1
19.07.2012 11:43:55 - ===>>> Klasse : DataAcquisition.cs
Methode: public string GetPwd(int userID)
Returnwert: 1156371652
19.07.2012 11:43:59 - ===>>> Klasse : DataAcquisition
Methode: public void Subscribe()
Ein Client wird geschlossen....
19.07.2012 11:43:59 - ===>>> Klasse : DataAcquisition
Methode: public void Subscribe()
Ein Client wurde abgemeldet!
Nach ca. vier Sekunden wird er automatisch abgemeldet.
Ich bekomme es einfach nicht hin, dass die Verbindung so lange anhält, wie ich mich gerade im Bearbeitungsfenster befinde. Sobald ich eine Änderung durchführe, baut sich die Verbindung auf und schließt dann wieder.
Hier meine app.config - Server
[highlight=xml]
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_IEventSystem"
closeTimeout="00:01:00"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"
maxConnections="100">
<security mode="None"></security>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="ExposeMexAndThrottleBehavior">
<serviceMetadata/>
<serviceThrottling maxConcurrentCalls="100" maxConcurrentInstances="101" maxConcurrentSessions="101"/>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="AmpelfunktionCCCServer.Globals.DataAcquisiti on" behaviorConfiguration="ExposeMexAndThrottleBehavio r">
<endpoint
address="net.tcp://alo-win7:9400/DataAcquisition/"
binding="netTcpBinding"
contract="AmpelfunktionCCCServer.Interfaces.IDataA cquisition"
bindingConfiguration="NetTcpBinding_IEventSystem"/>
<endpoint
address="net.tcp://alo-win7:9401/DataAcquisition/Mex"
binding="mexTcpBinding"
contract="IMetadataExchange">
</endpoint>
</service>
</services>
</system.serviceModel>
</configuration>
[/highlight]
Hier meine app.config - Client
[highlight=xml]
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_IEventSystem"
closeTimeout="00:01:00"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"
>
<security mode="None"></security>
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://alo-win7:9400/DataAcquisition/"
binding="netTcpBinding"
bindingConfiguration="NetTcpBinding_IEventSystem"
contract="Interfaces.IDataAcquisition"
name="NetTcpBinding_IEventSystem">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
</system.serviceModel>
[/highlight]
Was kann ich unternehmen, dass die Verbindung erst unterbrochen wird wenn ich es möchte?
Vielen Dank für Eure Unterstützung.
Gruß Lerando
ich habe eine Client-Server - Anwendung mit WCF programmiert. Funktioniert prima, bis auf einen Timeout.
Problem:
Ich starte ein Fenster, die erforderlichen Daten werden vom Server abgeholt. Allerdings wird die Client-Verbindung nach dem erhalten der Daten nach ein paar Sekunden abgebrochen. Hier ein Auszug aus meiner Log-Datei:
19.07.2012 11:43:55 - ===>>> Klasse : DataAcquisition
Methode: public void Subscribe()
Ein Client wurde angemeldet!
19.07.2012 11:43:55 - ===>>> Klasse : DataAcquisition.cs
Methode: public ConnectionErrorColor Connect()
Returnwert: Ready
19.07.2012 11:43:55 - ===>>> Klasse : DataAcquisition.cs
Methode: public bool CheckUserName(string userName)
Returnwert: True
19.07.2012 11:43:55 - ===>>> Klasse : DataAcquisition.cs
Methode: public int GetUserId(string userName)
Returnwert: 1
19.07.2012 11:43:55 - ===>>> Klasse : DataAcquisition.cs
Methode: public string GetPwd(int userID)
Returnwert: 1156371652
19.07.2012 11:43:59 - ===>>> Klasse : DataAcquisition
Methode: public void Subscribe()
Ein Client wird geschlossen....
19.07.2012 11:43:59 - ===>>> Klasse : DataAcquisition
Methode: public void Subscribe()
Ein Client wurde abgemeldet!
Nach ca. vier Sekunden wird er automatisch abgemeldet.
Ich bekomme es einfach nicht hin, dass die Verbindung so lange anhält, wie ich mich gerade im Bearbeitungsfenster befinde. Sobald ich eine Änderung durchführe, baut sich die Verbindung auf und schließt dann wieder.
Hier meine app.config - Server
[highlight=xml]
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_IEventSystem"
closeTimeout="00:01:00"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"
maxConnections="100">
<security mode="None"></security>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="ExposeMexAndThrottleBehavior">
<serviceMetadata/>
<serviceThrottling maxConcurrentCalls="100" maxConcurrentInstances="101" maxConcurrentSessions="101"/>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="AmpelfunktionCCCServer.Globals.DataAcquisiti on" behaviorConfiguration="ExposeMexAndThrottleBehavio r">
<endpoint
address="net.tcp://alo-win7:9400/DataAcquisition/"
binding="netTcpBinding"
contract="AmpelfunktionCCCServer.Interfaces.IDataA cquisition"
bindingConfiguration="NetTcpBinding_IEventSystem"/>
<endpoint
address="net.tcp://alo-win7:9401/DataAcquisition/Mex"
binding="mexTcpBinding"
contract="IMetadataExchange">
</endpoint>
</service>
</services>
</system.serviceModel>
</configuration>
[/highlight]
Hier meine app.config - Client
[highlight=xml]
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_IEventSystem"
closeTimeout="00:01:00"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"
>
<security mode="None"></security>
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://alo-win7:9400/DataAcquisition/"
binding="netTcpBinding"
bindingConfiguration="NetTcpBinding_IEventSystem"
contract="Interfaces.IDataAcquisition"
name="NetTcpBinding_IEventSystem">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
</system.serviceModel>
[/highlight]
Was kann ich unternehmen, dass die Verbindung erst unterbrochen wird wenn ich es möchte?
Vielen Dank für Eure Unterstützung.
Gruß Lerando
Comment