Kā salabot kļūdu “Esošs savienojums tika piespiedu kārtā slēgts ar attālo resursdatoru”?

Attāls dators ir tas, kurā fiziski nav klātbūtnes; tam var piekļūt tikai ar sava veida datortīklu. Attālā saimniekdators ir dators, kas mitina tīklu un kurš mitina attālo datoru, un attālais klients ir tīkla attālā klienta lietotājs. Šī funkcija ir radījusi revolūciju daudzos procesos, un tai ir plašs spektrs arī nākotnē.

Esošs savienojums tika piespiedu kārtā slēgts ar vietējā resursdatora kļūdu

Tomēr pavisam nesen tiek parādīts daudz ziņojumu par kļūdu “ esošu savienojumu piespiedu kārtā slēdza attāla resursdators ”, mēģinot izveidot savienojumu ar attālo resursdatoru. Šī kļūda tiek izraisīta ar kontaktligzdas savienojumu starp klientu un serveri. Šajā rakstā mēs sniegsim dažus dzīvotspējīgus risinājumus, lai pilnībā labotu šo kļūdu, kā arī informēsim jūs par iemesliem, kas izraisa šo kļūdu.

Kas izraisa kļūdu Windows sistēmā “Esošu savienojumu piespiedu kārtā slēdza attālā resursdators”?

Pēc daudzu ziņojumu saņemšanas no vairākiem lietotājiem mēs nolēmām izmeklēt šo problēmu un izstrādājām risinājumu kopumu, lai to novērstu. Mēs arī izpētījām iemeslus, kuru dēļ tā tiek iedarbināta, un uzskaitījām tos zemāk.

  • TLS 1.1 / 1.0 lietojums: ja lietojumprogramma darbojas uz TLS 1.1 vai TLS 1.0, tā varētu izraisīt šo kļūdu, jo tām ir nolietojums. TLS 1.2 ir veids, kā izvēlēties protokolu, kuru lieto lietojumprogramma.
  • Kriptogrāfija atspējota: ja jūsu mašīnā ir atspējota kriptogrāfija, tā neļaus izmantot TLS 1.2 un atgriezīsies TLS 1.0, kas varētu izraisīt kļūdu.
  • Socket ieviešana: dažos gadījumos kļūdu rada noteikts ligzdas ieviešanas veids. Ir kļūda ar dažām “.NET” lietojumprogrammas ieviešanām, un tā var izraisīt šo kļūdu.
  • Trūkst koda: Dažiem cilvēkiem, kuri izmantoja Entity Framework, tika novērots, ka trūkst noteiktas koda rindas, kuras dēļ tika iedarbināta kļūda.
  • Novecojis “.NET” ietvars: dažos gadījumos, ja “.NET” ietvars tiek atspējots, šī kļūda var tikt iedarbināta. Dažiem uzdevumiem “.NET” ietvars ir jāatjaunina uz jaunāko versiju, lai tie darbotos pareizi.

Tagad, kad jums ir pamata izpratne par problēmas būtību, mēs pāriesim pie risinājumiem. Pārliecinieties, lai tos ieviestu noteiktā secībā, kādā tie tiek uzrādīti, lai izvairītos no konfliktiem.

1. risinājums: kriptogrāfijas iespējošana

Ja jūsu mašīnā ir atspējota kriptogrāfija, TLS 1.2 lietošana ir aizliegta. Tāpēc šajā solī mēs iespējot kriptogrāfiju. Par to:

  1. Nospiediet “ Windows ” + “ R ”, lai atvērtu uzvedni Run.
  2. Ierakstiet “regedit” un nospiediet “ Enter ”.

    Ierakstot “Regedit” un nospiežot “Enter”
  3. Pārejiet uz šo adresi
     HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031 

    Virzieties uz šo adresi, ja labajā rūtī nav vērtības “ SchUseStrongCrypto ”.

     HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319 
  4. Labajā rūtī veiciet dubultklikšķi uz opcijas “ SchUseStrongCrypto ” un kā vērtības datus ievadiet “ 1 ”.

    Veiciet dubultklikšķi uz vērtības “SchUseStrongCrypto” labajā rūtī
  5. Noklikšķiniet uz “ Labi ”, lai saglabātu izmaiņas un pārbaudītu, vai problēma joprojām pastāv.

2. risinājums: Piespiest TLS 1.2 izmantošanu

Ja lietojumprogramma ir konfigurēta tā, lai tā TLS 1.2 vietā izmantotu TLS 1.1 vai TLS 1.0, tā varētu izraisīt šo kļūdu. Tāpēc šajā solī mēs konfigurēsim datoru, lai izmantotu TLS 1.2. Par to:

  1. Dodieties uz vietnes sakni un ar peles labo pogu noklikšķiniet uz faila “global.asax” .
  2. Sarakstā atlasiet “ View Code ”.
  3. Jābūt metodei “ Application_Start ”, šai metodei pievienojiet šo koda rindu
     if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) ServicePointManager. SecurityProtocol = ServicePointManager. Drošības protokols 

    Rindu pievienošana kodam
  4. Saglabājiet izmaiņas un pārbaudiet, vai problēma joprojām pastāv.

3. risinājums: kontaktligzdas ieviešanas mainīšana

Ja noteiktā kontaktligzdas ieviešanā ir kļūda vai kļūme, tas var novērst atsevišķu lietojumprogrammas elementu pareizu darbību, kuru dēļ šī kļūda varētu tikt aktivizēta. Tāpēc šajā posmā mēs to konfigurēsim, lai izmantotu atšķirīgu ieviešanu. Par to:

  1. Pārliecinieties, ka jums ir “ StateObjec t” klase ar “ publisks baits [] buferis = jauns baits [1024], publiska ligzdas ligzda; “.
  2. Zvaniet uz funkciju “ Saņemt (ligzdas s) ” un izsauciet šo kodu sadaļā “ void ReceiveCallback (IAsyncResult ar) ”.
      SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar, out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Pārbaudiet, vai problēma pastāv pēc šī koda ieviešanas.

4. risinājums: komandrindu pievienošana (tikai entītiju ietvariem)

Ja jūs izmantojat Entity Framework, iespējams, ka trūkst noteiktas koda rindas. Tāpēc šajā posmā mēs pievienosim šo koda rindu, lai labotu šo problēmu. Par to:

  1. Atveriet failu .edmx un zem tā atveriet failu .context.tt .
  2. Atveriet failu .context.cs un pievienojiet konstruktoram šādu koda rindu
      public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Pārbaudiet, vai problēma atkārtojas pēc šīs koda rindas pievienošanas.

5. risinājums: .NET Framework atjaunināšana

Lai viss darbotos nevainojami, ir nepieciešama jaunākā “.NET” ietvara versija. Tāpēc šajā solī mēs no vietnes lejupielādēsim jaunāko versiju un instalēsim to. Par to:

  1. Lai lejupielādētu iestatījumus, dodieties uz šo saiti.
  2. Izpildiet “ .exe ” failu, lai sāktu instalēšanas procesu.

    No Microsoft lejupielādētās izpildāmās programmas palaišana
  3. Izpildiet ekrānā redzamos norādījumus, lai instalētu lietojumprogrammu datorā.
  4. Pārbaudiet, vai problēma pastāv pēc instalēšanas pabeigšanas.

Interesanti Raksti