Closed eivindivine closed 10 months ago
Dersom et nettverkskall henger, så tyder det ofte på infrastrukturproblemer, manglende åpning i brannmur, manglende bruk av proxy, eller lignende, som gjør at kallet ikke slipper ut fra egen infrastruktur og når frem til API-et.
F.eks. proxy kan konfigureres der du setter opp ClientConfiguration ved å sende med WebProxy
og NetworkCredential
.
Jeg klarer ikke å finne logikk i det ettersom dialog med Digdir sier at de mottar spørringene våre og innkommen data tilsier at det er ok, men requestet avsluttes ikke i Create(Job). Console app med samme kode kjører på samme PC, og burde ha samme nettverksrestriksjoner fra standard oppsett, men klarer å gjennomføre kallet.
Jeg er lite bevandret med .NET, men hører noen hint om at dette sannsynligvis kan løses med .ConfigureAwait(false)
, og at årsaken kommer av noe blanding av synkron og asynkron kode.
Kan dette hjelpe deg noe på vei? https://stackoverflow.com/a/14527164 https://devblogs.microsoft.com/pfxteam/await-and-ui-and-deadlocks-oh-my/
Gjør du .Result
noe sted?
https://stackoverflow.com/a/59123318
you should not use .Result to get the result of tasks inside most applications except console applications if you do so your program will hang when it gets there
Takk! Det var løsningen!
Jeg forsøker å gjennomføre directClient.Create(job) i sin enkleste form, og dersom den kjøres i console application eks "Program.Main()" fungerer det fint, men ikke når den kalles i en MVC controller. (Koden er lik, men kjøres fra forskjellige kontekster). Miljø: .Net Framework 4.8, med Digipost.Signature... v.9.0.3
Koden returnerer ingen feilkode, men blir evig hengende på directClient.Create(job).
Er det forutsetninger til kjørekontekst?
Kan lett gjenskapes ved å kjøre følgende kode: (forutsatt at orgnummer, personnummer, pdf-path og egen thumbprint legges inn)
testfil er lagt ved som utgjør TestController.cs TestController.txt