Hallo
Ich möchte aus einer .ASP NET-Core Application auf ein bestehendes Service (.Net FW 4.6.1) zugreifen. Ich habe mich hier für die Kommunikation mittels gRPC entschieden. Mein Server sieht wie folgt aus:
C#-Code: |
string IP = "0.0.0.0";
int Port = 23116;
try
{
Server server = new Server
{
Services =
{
GRPC_Test.BindService(new Test_GRPC())
},
Ports = { new ServerPort(IP, Port, ServerCredentials.Insecure) }
};
server.Start();
service.EventLog.WriteEntry($"API-Server auf {IP}:{Port} gestartet");
}
catch (Exception ex)
{
service.EventLog.WriteEntry("API-Server konnte nicht gestartet werden");
service.EventLog.WriteEntry(ex.Message);
}
|
und der Client so:
C#-Code: |
int Port = 23116;
string IP = "10.xx.xx.xx";
Channel channel = new Channel(IP, Port, ChannelCredentials.Insecure);
var client = new GRPC_Test.GRPC_TestClient(channel);
|
Wenn ich das ganze im Visualstudio (mit der lokalen IP im Client) laufen lasse, dann funktioniert alles wunderbar (HTTP-Request via Postman liefert richtigen Reply). Kopiere ich die EXE auf den Server, starte diese in einem CMD-Fenster und lasse den Client in VS laufen, dann funktioniert es auch wie es soll. Installiere ich die EXE aber am Server als Service, dann bekomme ich im Client nach einiger Zeit eine Exception mit folgendem Inhalt:
Fehlermeldung: |
RpcException: Status(StatusCode=Cancelled, Detail="Cancelled") |
und der Stacktrace zeigt auf die aufrufende Funktion. Leider konnte ich auch nichts über Google hierzu finden, daher hier meine Bitte um Hilfe. Vielleicht wissen ja die Gurus unter Euch, wo der Fehler verborgen ist.
mfg
Thomas