পরিবহন সংযোগ থেকে ডেটা পড়তে অক্ষম: একটি বিদ্যমান সংযোগ জোর করে দূরবর্তী হোস্ট দ্বারা বন্ধ করা হয়েছিল


111

আমার একটি সার্ভার অ্যাপ রয়েছে এবং কখনও কখনও যখন ক্লায়েন্ট সংযোগ দেওয়ার চেষ্টা করে, আমি নিম্নলিখিত ত্রুটিটি পাই:

এখানে চিত্র বর্ণনা লিখুন

দ্রষ্টব্য: "ক্লায়েন্টের কাছ থেকে স্ট্রিম পেতে পারা যায়নি বা লগইন ব্যর্থ হয়েছে" এমন একটি পাঠ যা আমার কাছে ক্যাচ স্টেটমেন্টে যুক্ত হয়েছে

এবং যে লাইনে এটি থামবে (sThread: লাইন 96) তা হ'ল:

tcpClient = (TcpClient)client;
clientStream = tcpClient.GetStream();
sr = new StreamReader(clientStream);
sw = new StreamWriter(clientStream);

// line 96:                 
a = sr.ReadLine();

কী কারণে এই সমস্যা হতে পারে? মনে রাখবেন যে এটি সর্বদা ঘটে না

উত্তর:


64

এই ত্রুটিটির অর্থ সাধারণত টার্গেট মেশিনটি চলমান তবে আপনি যে পরিষেবাটির সাথে সংযোগের চেষ্টা করছেন সেটি উপলভ্য নয়। (হয় এটি বন্ধ হয়ে গেছে, ক্রাশ হয়েছে, বা অন্য অনুরোধে ব্যস্ত)

সংযোগ: ইংরেজিতে মেশিন (দূরবর্তী হোস্ট / সার্ভার / পিসি যে সেবা রান) তৈরি করা হয়েছিল কিন্তু যেহেতু সেবা উপলব্ধ ছিল না উপর যে মেশিন, মেশিন কি অনুরোধ সঙ্গে কাজ করতে জানি না।

যদি মেশিনের সাথে সংযোগটি না পাওয়া যায় তবে আপনি অন্য একটি ত্রুটি দেখতে পাবেন। আমি কী তা ভুলে গেছি তবে এটি "পরিষেবা অপ্রাপ্য" বা "অনুপলব্ধ" লাইনের পাশাপাশি রয়েছে।

সম্পাদনা - যুক্ত করা হয়েছে

এটি সম্ভব যে কোনও ফায়ারওয়ালটি পোর্টটি অবরুদ্ধ করার কারণে ঘটেছিল, তবে আপনি যখন বলে থাকেন যে এটি মাঝেমধ্যে ("যখন ক্লায়েন্ট সংযোগ দেওয়ার চেষ্টা করে") তখন তা খুব কমই। আমি এটিকে মূলত অন্তর্ভুক্ত করি নি কারণ আমি জবাব দেওয়ার আগে মানসিকভাবে এড়িয়ে গিয়েছিলাম।


4
বিষয়টি হ'ল আমি যখন সার্ভারটি শুরু করি তখন আমার সার্ভারের সাথে সংযোগ স্থাপনকারী 50 টির মতো কিছু থাকে। আমি কোনও ক্লায়েন্টকে গ্রহণ করার সময় এক ধরণের অপেক্ষার সংকেত প্রয়োগ করেছি .. এমন কিছু সময় (প্রোগ্রাম.ওয়েটটো ফিনিশলোগিনএটক্লিয়েন্ট == সত্য &&jj <<) read থ্রেড.স্লিপ (300); অজুটার ++; } ক্লায়েন্ট = this.tcpListener.ApceptTcpClient (); প্রোগ্রাম.ওয়েটটোফিনিশলোগিনএটক্লিয়েন্ট = সত্য; ........... এবং Program.waitToFinishAtClient ক্লায়েন্টযুক্ত থ্রেডে পরিবর্তিত হয়
অ্যালেক্স

এই "অপেক্ষা" সমস্যা হতে পারে?
অ্যালেক্স

4
আমি কি এটা হতে দেওয়া উচিত? অপেক্ষা নেই?
অ্যালেক্স

4
আমি মনে করি অপেক্ষা অপেক্ষা সমস্যা। আপনার কোডটি নিশ্চিত হওয়ার পক্ষে আমি যথেষ্ট পরিমাণে জানি না, তবে এটি অবশ্যই সম্ভবত শোনায়। আপনি নিজের পরিষেবাটি "হার্ড ওয়ে" তৈরি করেছেন কিনা বা আপনি যদি ডাব্লুসিএফ ব্যবহার করছেন বা এমনকি এর জন্য রিমোটিং করছেন কিনা তা সম্পর্কে কেবল কৌতুহল ...
ডেভিড

এখানে কোডের ছোট্ট নীটের উপর ভিত্তি করে, আমার কাছে দেখে মনে হচ্ছে "অপেক্ষা" সমস্যাটি এড়ানো যায় যদি এটি প্রতিটি সংযোগের জন্য পৃথক থ্রেডের ভিতরে থাকে। অনুমানটি সঠিক হলে, এখানে মাল্টি- থ্রেডযুক্ত
ডেভিড

194

একটি ওয়েব-পরিষেবা কল করার সময় আমি এই ত্রুটিটি পেয়েছি। বিষয়টি পরিবহন স্তরের সুরক্ষার সাথেও সম্পর্কিত ছিল। আমি কোনও ওয়েবসাইট প্রকল্পের মাধ্যমে ওয়েব-পরিষেবাটিতে কল করতে পারি, তবে পরীক্ষার প্রকল্পে একই কোডটি পুনরায় ব্যবহার করার সময় আমি একটি ওয়েবএক্সেপশন পেয়ে যাব যাতে এই বার্তাটি রয়েছে। কল করার আগে নিম্নলিখিত লাইনটি যুক্ত করা সমস্যার সমাধান করেছে:

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

সম্পাদনা করুন

সিস্টেম.নেট.সেবারপয়েন্ট ম্যানেজ.সিকিউরিটিপ্রোটোকল - এই সম্পত্তিটি সিকিউর হাইপারটেক্সট ট্রান্সফার প্রোটোকল (এইচটিটিপিএস) স্কিম ব্যবহার করে এমন নতুন সংযোগগুলির জন্য ব্যবহার করতে সিকিওর সকেটস লেয়ার (এসএসএল) বা ট্রান্সপোর্ট লেয়ার সিকিউরিটি (টিএলএস) প্রোটোকলের সংস্করণ নির্বাচন করে; বিদ্যমান সংযোগগুলি পরিবর্তন করা হয়নি।

আমি বিশ্বাস করি SecurityProtocolযে প্রোটোকল সংস্করণ নির্বাচন করার সময় টিএলএস হ্যান্ডশেকের সময় কনফিগারেশনটি গুরুত্বপূর্ণ।

টিএলএস হ্যান্ডশেক - এই প্রোটোকল টিএলএস দ্বারা প্রকৃত অ্যাপ্লিকেশন ডেটা বিনিময়ের জন্য উভয় পক্ষের প্রয়োজনীয় সমস্ত তথ্য বিনিময় করতে ব্যবহৃত হয়।

ClientHello - একটি ক্লায়েন্ট সর্বোচ্চ TLS প্রোটোকল সংস্করণ এটি সমর্থন উল্লেখ একটি ClientHello বার্তা পাঠায় ...

সার্ভারহেলো - নির্বাচিত প্রোটোকল সংস্করণ সম্বলিত সার্ভারটি একটি সার্ভারহেলো বার্তা দিয়ে সাড়া দেয় ... নির্বাচিত প্রোটোকল সংস্করণ ক্লায়েন্ট এবং সার্ভার উভয়ই সমর্থন করে এমন সর্বোচ্চ হওয়া উচিত। উদাহরণস্বরূপ, যদি ক্লায়েন্ট টিএলএস সংস্করণ 1.1 সমর্থন করে এবং সার্ভারটি 1.2 সংস্করণ সমর্থন করে, সংস্করণ 1.1 নির্বাচন করা উচিত; সংস্করণ 1.2 নির্বাচন করা উচিত নয়।


9
এই আমাকে বাঁচায়! ধন্যবাদ মানুষ. আমার ডিবাগারে আমি পরীক্ষার সময় একটি https পরিষেবা কল করার চেষ্টা করছি এবং ওপি যে সমস্যাটি নিয়ে আসছিল তা হচ্ছে।
ব্লেয়ার হোমস 16

6
কীভাবে / কেন এটি কাজ করে সে সম্পর্কে আমরা আরও জানি? আমি একটি পোস্টঅ্যাসিঙ্ক কল নিয়ে লড়াই করছি এবং এটি আমার ত্রুটিটিও ঠিক করে দিচ্ছে। খুশী হয়ে কাজ করেছে, তবে কেন তাও জানতে চাই।
কেভিন ম্যাটলক

4
@ হ্যানসভন এর জন্য ধন্যবাদ! আমাকে এক টন সময় বাঁচিয়েছে - কেন এটি কাজ করে তা সম্পর্কে এটি যখন আপনি সংযুক্ত থাকবেন তখন আপনি কেবলমাত্র টিএলএস সংস্করণটি সীমাবদ্ধ করছেন।
বিভ্রান্তিমন্দিত

4
বিশ্বাস করতে পারছি না এটি আমাকে আরও একবার পেয়েছে! ধন্যবাদ
সেরজিও এ।

4
ধন্যবাদ! এটি আমাকে বাদাম চালাচ্ছিল।
mknopf

35

আমার সুনির্দিষ্ট কেস দৃশ্যপটটি ছিল যে অ্যাজুর অ্যাপ পরিষেবাটিতে সর্বনিম্ন টিএলএস সংস্করণটি 1.2 তে পরিবর্তিত হয়েছিল

এখন থেকে এটি ডিফল্ট কিনা তা আমি জানি না, তবে এটিকে 1.0 এ পরিবর্তন করে এটি কার্যকর করেছে made

আপনি "এসএসএল সেটিংস" এর ভিতরে সেটিংস অ্যাক্সেস করতে পারেন।


7
ওহ godশ্বর আপনাকে অনেক ধন্যবাদ! আমি দীর্ঘদিন ধরে এটি আটকে ছিলাম এবং আমি ওয়েব অ্যাপ্লিকেশনটির এসএসএল সেটিংস পরীক্ষা করেছিলাম এবং সর্বনিম্ন 1.0 এর পরিবর্তে 1.2 তে সেট করা হয়েছিল। আমি যখন এটিকে 1.0 এ পরিবর্তন করেছি এবং ওয়েব অ্যাপ্লিকেশনটি পুনরায় চালু করেছি, তখন এটি কার্যকর হয়েছিল! তোমাকে অনেক ধন্যবাদ!
ম্যাসন

4
অনেক ধন্যবাদ, @ হুগো-ইলরিও, আশ্চর্যজনকভাবে এটি আমার পক্ষেও কাজ করেছে! পৃথিবীতে আপনি কীভাবে এমন জটিল কৌশল সন্ধান করতে পারেন! : ডি
হোস্টজয়

@ হোসজে আমার জন্য এটিও একটি জাহান্নাম ছিল :)
হুগো হিলরিও

4
আমার দিনের সাথীকে বাঁচিয়েছে!
নীতেশ

আমার এই
অ্যাজুরে

17

এই ব্লগ পোস্টগুলির মধ্যে যে কোনও সমাধানগুলি সহায়তা করেছে তা নিশ্চিত নয় তবে তাদের মধ্যে একটি আমার জন্য এই সমস্যাটি সাজিয়েছে ...

http://briancaos.wordpress.com/2012/07/06/unable-to-read-data-from-the-transport-connection-the- সংযোগ-was- ক্লোজড /

যে কৌশলটি আমাকে সাহায্য করেছিল তা হ'ল ওয়েবরেকুয়েস্ট ব্যবহার করা ছেড়ে দেওয়া এবং পরিবর্তে একটি এইচটিপিওয়েবরেউকেষ্ট ব্যবহার করা। HTTPWebRequest আমাকে 3 টি গুরুত্বপূর্ণ সেটিংস সহ খেলতে দেয়:

এবং

http://briancaos.wordpress.com/2012/06/15/an-existing-connection-was-forcibly-closed-by-the-remote-host/

  • পদক্ষেপ 1: কিপএলাইভ অক্ষম করুন
  • পদক্ষেপ 2: সংস্করণ 10 এ প্রোটোকল ভার্সন সেট করুন
  • পদক্ষেপ 3: পরিষেবা পয়েন্ট সংখ্যা সীমাবদ্ধ

4
এই উত্তরটি আমার জন্য একই সমস্যাটি সমাধান করেছে। আমি আইআইএস in এর এইচটিপি রেসপন্স শিরোনাম বিভাগে 'কিপ অ্যালাইভ' বন্ধ করে রেখেছি
ড্রজডাউন্ডস

আমার যুক্ত করা উচিত যে ওয়েব পরিষেবায় যে আচরণটি ছিল সেগুলির জন্য আমাকে এই কোডটিও রেফারেন্স.স-এর সাথে যুক্ত করতে হয়েছিল। সুরক্ষিত ওভাররাইড সিস্টেম.নেট.ওয়েবরেইকস্ট গেট ওয়েব্রেকুয়েস্ট (উরি ইউরি) {System.Net.HttpWebRequest WebRequest = (System.Net.HttpWebRequest) বেস.গেটওয়েবরেস্ট (ইউরি); webRequest.KeepAlive = মিথ্যা; WebRequest ফিরুন; }
21:56

11

আমাদের সার্ভারগুলির মধ্যে একটি থেকে এইচটিটিপিএস পরিষেবাতে কলগুলি " পরিবহন সংযোগ থেকে ডেটা পড়তে অক্ষম: একটি বিদ্যমান সংযোগটি জোর করে বন্ধ করা হয়েছিল " ব্যতিক্রম ছুঁড়ে মারছিল । এইচটিটিপি পরিষেবা যদিও ভাল কাজ করেছে। এটি টিএলএস হ্যান্ডশেক ব্যর্থতা ছিল তা দেখার জন্য ওয়্যারশার্ক ব্যবহার করেছেন। শেষ হয়েছে যে সার্ভারে সাইফার স্যুটটি আপডেট করা দরকার।


আমার সাথে এটাই হচ্ছিল। একটি এসএসএল সংযোগে মেয়াদোত্তীর্ণ শংসাপত্র প্রেরণ করা হয়েছিল। একটি শংসাপত্র পুনর্নবীকরণ এবং কাজ।
গিলহার্ম ডি

11

"হান্স ভন" এর উত্তর অনুসারে।

কল করার আগে নিম্নলিখিত লাইনটি যুক্ত করা সমস্যার সমাধান করেছে:

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

সিকিউরিটি প্রোটোকল যুক্ত করার পরে এবং ঠিকঠাক কাজ করার পরেও আমাকে প্রতিটি এপিআই কল দেওয়ার আগে যোগ করতে হবে যা স্বাস্থ্যকর নয়। আমি কেবলমাত্র নেট ফ্রেমওয়ার্ক সংস্করণটি কমপক্ষে 4.6 আপগ্রেড করব এবং প্রত্যাশা অনুযায়ী কাজ করার জন্য প্রতিটি এপিআই কল করার আগে যোগ করার প্রয়োজন হয় না।


4
আপনাকে অনেক ধন্যবাদ. তুমি আমার দিনটি তৈরি করেছ কারও কারও পক্ষে উপকারী হতে পারে যদি আমি উল্লেখ করি যে এর আগে আমি ফায়ারওয়ালটি নিষ্ক্রিয় করে সার্ভিসপয়েন্ট ম্যানেজার.সার্ভারকার্টিভেটিভালিডেশনক্যালব্যাক যোগ না করেও পরীক্ষা করেছি non
টেকিন

5

এটি মধ্যবর্তী সমস্যাগুলির জন্য সহায়তা করবে না, তবে অনুরূপ সমস্যাযুক্ত অন্যান্য ব্যক্তির জন্যও এটি কার্যকর হতে পারে।

আমি একটি ভিএম ক্লোন করেছি এবং একটি নতুন আইপি ঠিকানা দিয়ে এটি একটি আলাদা নেটওয়ার্কে শুরু করেছি তবে আইআইএসের বাইন্ডিংগুলি পরিবর্তন করিনি। ফিডলার আমাকে "পরিবহণ সংযোগ থেকে ডেটা পড়তে অক্ষম: একটি বিদ্যমান সংযোগটি জোর করে দূরবর্তী হোস্ট দ্বারা বন্ধ করা হয়েছিল" এবং আইই আমাকে বলছিল "অ্যাডভান্সড সেটিংসে টিএলএস 1.0, টিএলএস 1.1 এবং টিএলএস 1.2" চালু করুন "। নতুন আইপি ঠিকানায় বাইন্ডিং পরিবর্তন করা আমার জন্য এটি সমাধান করে।


2

কিছু কারণে সার্ভারের সংযোগটি হারিয়ে গেছে was এটি হতে পারে যে সার্ভারটি স্পষ্টভাবে সংযোগটি বন্ধ করে দিয়েছে বা সার্ভারের কোনও ত্রুটি এটি অপ্রত্যাশিতভাবে বন্ধ হয়ে গেছে। বা ক্লায়েন্ট এবং সার্ভারের মধ্যে কিছু (একটি স্যুইচ বা রাউটার) সংযোগটি বাদ দিয়েছে।

এটি সার্ভার কোড হতে পারে যা সমস্যার কারণ হতে পারে এবং এটি নাও হতে পারে। আপনার যদি সার্ভার কোডটিতে অ্যাক্সেস থাকে তবে ক্লায়েন্ট সংযোগগুলি কখন বন্ধ থাকে তা জানানোর জন্য আপনি সেখানে কিছু ডিবাগিং রাখতে পারেন। এটি আপনাকে কখন এবং কেন সংযোগগুলি বাদ দেওয়া হচ্ছে তার কিছু ইঙ্গিত দিতে পারে।

ক্লায়েন্টে, আপনাকে যে কোনও সময় সার্ভারের ব্যর্থতার সম্ভাবনা বিবেচনায় নিতে আপনার কোড লিখতে হবে। এটি কেবল এইভাবে: নেটওয়ার্ক সংযোগগুলি অন্তর্নিহিত বিশ্বাসযোগ্য নয়।


2

এটি আমার সমস্যার সমাধান করেছে। অনুরোধটি হওয়ার আগে আমি এই লাইনটি যুক্ত করেছি:

System.Net.ServicePointManager.Expect100Continue = false;

দেখে মনে হয়েছিল সার্ভারের পথে এমন একটি প্রক্সি রয়েছে যা 100-চালিয়ে যাওয়া আচরণকে সমর্থন করে না।


1

আমি অতীতে সমস্যা পেতে। আমি পোস্টগ্রাইএসকিউএল ব্যবহার করছি এবং যখন আমি আমার প্রোগ্রামটি চালাচ্ছি, কখনও কখনও এটি সংযুক্ত হয় এবং কখনও কখনও এটি এর মতো একটি ত্রুটি ছুড়ে দেয়।

আমি যখন আমার কোডটি পরীক্ষা করি তখন আমি আমার কানেকশন কোডটিকে সর্বজনীন ফর্মের নীচে প্রথম লাইনে রাখি। এখানে একটি উদাহরণ:

আগে:

    public Form1()
        {
        //HERE LIES SOME CODES FOR RESIZING MY CONTROLS DURING RUNTIME
        //CODE
        //CODE AGAIN
        //ANOTHER CODE
        //CODE NA NAMAN
        //CODE PA RIN!





        //Connect to Database to generate auto number
        NpgsqlConnection iConnect = new NpgsqlConnection("Server=localhost;Port=5432;User ID=postgres;Password=pass;Database=DB");
        iConnect.Open();
        NpgsqlCommand iQuery = new NpgsqlCommand("Select * from table1", iConnect);
        NpgsqlDataReader iRead = iQuery.ExecuteReader();
        NpgsqlDataAdapter iAdapter = new NpgsqlDataAdapter(iQuery);

        DataSet iDataSet = new DataSet();
        iAdapter.Fill(iDataSet, "ID");

        MessageBox.Show(iDataSet.Tables["ID"].Rows.Count.ToString());
        }

এখন:

    public Form1()
        {
        //Connect to Database to generate auto number
        NpgsqlConnection iConnect = new NpgsqlConnection("Server=localhost;Port=5432;User ID=postgres;Password=pass;Database=DB");
        iConnect.Open();
        NpgsqlCommand iQuery = new NpgsqlCommand("Select * from table1", iConnect);
        NpgsqlDataReader iRead = iQuery.ExecuteReader();
        NpgsqlDataAdapter iAdapter = new NpgsqlDataAdapter(iQuery);

        DataSet iDataSet = new DataSet();
        iAdapter.Fill(iDataSet, "ID");

        MessageBox.Show(iDataSet.Tables["ID"].Rows.Count.ToString());





        //HERE LIES SOME CODES FOR RESIZING MY CONTROLS DURING RUNTIME
        //CODE
        //CODE AGAIN
        //ANOTHER CODE
        //CODE NA NAMAN
        //CODE PA RIN!

        }

আমি মনে করি যে প্রোগ্রামটি অবশ্যই কিছু করার আগে সংযোগটি পড়তে হবে, আমি জানি না, আমি ভুল হলে আমাকে সংশোধন করতে হবে। তবে আমার গবেষণা অনুসারে, এটি কোনও কোড সমস্যা নয় - এটি আসলে মেশিন থেকেই।

শুভ কোডিং!


1
System.Net.ServicePointManager.Expect100Continue = false;

ওয়েব সার্ভারে প্রক্সি সার্ভার বাস্তবায়িত হওয়ার কারণে এই সমস্যাটি ঘটে। প্রেরক পরিষেবাটিতে কল করার আগে এই লাইনটি রেখে প্রক্সি সার্ভারকে বাইপাস করতে।


0

অনুরোধগুলি প্রেরণ করার চেষ্টা করার জন্য আমার কাছে একটি তৃতীয় পক্ষের অ্যাপ্লিকেশন (ফিডলার) চলছে। এই অ্যাপ্লিকেশনটি বন্ধ করে দেওয়া আমার জন্য এটি স্থির করে


0

আমাদের খুব অনুরূপ সমস্যা ছিল যার মাধ্যমে ক্লায়েন্টের ওয়েবসাইটটি আমাদের ওয়েব এপিআই পরিষেবাতে সংযোগ দেওয়ার চেষ্টা করে এবং একই বার্তাটি পেয়েছিল। আইআইএস যে সার্ভারে চলছে সেখানে কোনও কোড পরিবর্তন বা উইন্ডোজ আপডেট না থাকায় এটি নীল পুরোপুরি ঘটতে শুরু করে।

আমাদের ক্ষেত্রে দেখা গেল যে কলিং ওয়েবসাইটটি। নেট এর এমন একটি সংস্করণ ব্যবহার করছে যা কেবলমাত্র টিএলএস 1.0 সমর্থন করে এবং কোনও কারণে আমাদের আইআইএস যে সার্ভারটি বন্ধ ছিল সেখানে টিএলএস ১.০ কল গ্রহণ করা বন্ধ করে দিয়েছে। নির্ণয়ের জন্য যে আমাদের আইআইএস এর সার্ভারে রেজিস্ট্রি দিয়ে স্পষ্টভাবে টিএলএস সক্ষম করতে হয়েছিল এবং তারপরে সেই সার্ভারটি পুনরায় চালু করতে হয়েছিল। এইগুলি রেগ কীগুলি:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS
    1.0\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS
    1.0\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS
    1.1\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS
    1.1\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS
    1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS
    1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

If that doesn't do it, you could also experiment with adding the entry for SSL 2.0:


    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]
    "DisabledByDefault"=dword:00000000
    "Enabled"=dword:00000001

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
    "DisabledByDefault"=dword:00000000
    "Enabled"=dword:00000001

এখানে অন্য প্রশ্নের আমার উত্তরের এই পাওয়ারশেল স্ক্রিপ্টটি রয়েছে যা আমরা এন্ট্রিগুলি যুক্ত করতে ব্যবহৃত:

দ্রষ্টব্য: পুরানো সুরক্ষা প্রোটোকলগুলি সক্ষম করা ভাল ধারণা নয়, আমাদের ক্ষেত্রে সঠিক উত্তরটি ছিল ক্লায়েন্টের ওয়েবসাইটটি টিএলএস 1.2 ব্যবহারের কোডটি আপডেট করার জন্য, তবে উপরের রেজিস্ট্রি এন্ট্রিগুলি প্রথমে সমস্যাটি নির্ণয় করতে সহায়তা করতে পারে।


0

আমার সাথে এটি হওয়ার কারণটি ছিল আমার ডিআই সরবরাহকারীতে আমার পুনরাবৃত্তি নির্ভরতা ছিল। আমার ক্ষেত্রে আমার ছিল:

services.AddScoped(provider => new CfDbContext(builder.Options));
services.AddScoped(provider => provider.GetService<CfDbContext>());

ঠিক দ্বিতীয়টি স্কোপড পরিষেবা নিবন্ধকরণ সরিয়ে ফেলা ছিল

services.AddScoped(provider => new CfDbContext(builder.Options));

0

আপনার যদি ডোমেনে https শংসাপত্র থাকে, তা নিশ্চিত হয়ে নিন যে আপনার আইআইএস-এ ডোমেন নামের সাথে https আবদ্ধ রয়েছে। আইআইএসে -> আপনার ডোমেন নির্বাচন করুন -> বাইন্ডিংস সাইট বাইন্ডিং উইন্ডোতে ক্লিক করুন। Https- র জন্য একটি বাধ্যবাধকতা যুক্ত করুন।


0

অনুরূপ সমস্যা ছিল এবং আমি কী অ্যাপ্লিকেশনটি ব্যবহার করেছি এবং যদি আমরা ফায়ারওয়াল / লোড ব্যালেন্সারকে বাইপাস করি বা না করি তার উপর নির্ভর করে নিম্নলিখিত ত্রুটিগুলি পেয়েছিল:

এইচটিপিএস হ্যান্ডশেক [ব্লা]] (# 136 এর জন্য) ব্যর্থ হয়েছে। System.IO.IOException পরিবহন সংযোগ থেকে ডেটা পড়তে অক্ষম: একটি বিদ্যমান সংযোগ জোর করে দূরবর্তী হোস্ট দ্বারা বন্ধ করা হয়েছিল

এবং

রিড রিসপনস () ব্যর্থ হয়েছে: সার্ভারটি এই অনুরোধটির জন্য একটি সম্পূর্ণ প্রতিক্রিয়া ফিরিয়ে দেয়নি। সার্ভার 0 বাইট ফিরিয়েছে।

সমস্যাটি দেখা গেল যে SSL সার্ভার শংসাপত্রটি মিস হয়ে গেছে এবং একটি দম্পতি সার্ভারে ইনস্টল করা হয়নি।


0

আপনি যদি প্রথম স্থানে হ্যান্ডশেক স্থাপন করতে পারেন তা পরীক্ষা করে দেখুন। কোনও ফাইল আপলোড করার আগে আমার এই সমস্যাটি ছিল এবং আমি কেবলমাত্র বুঝতে পেরেছিলাম যে আমি যখন আপলোডটি সরিয়ে নিয়েছি এবং পরামিতিগুলি দিয়ে লগইন করতে পারি কিনা তা পরীক্ষা করেই সমস্যাটি অস্তিত্বহীন রুট।


0

অন্য বিকল্পটি হ'ল ট্রাই-ক্যাচ ব্লক ব্যবহার করে উত্পন্ন ত্রুটি কোডটি পরীক্ষা করা এবং প্রথমে ওয়েবএক্সসেপশন ধরা catch

আমার ক্ষেত্রে, এইচটিটিপিএস ইউআরএল-তে শংসাপত্র ইস্যু হওয়ার কারণে ত্রুটি কোডটি "সেন্ডফেইলর" ছিল, আমি যখন একবার এইচটিটিপিকে হিট করেছি, তা সমাধান হয়ে গেছে।

https://docs.microsoft.com/en-us/dotnet/api/system.net.webexceptionstatus?redireectedfrom=MSDN&view=netframework-4.8.8


0

আমার জন্য, এটি এমন একটি সমস্যা ছিল যেখানে আইআইএসের বাইন্ডিংয়ে এটিতে ওয়েব সার্ভারের আইপি ঠিকানা ছিল। সমস্ত অ-স্বাক্ষরিত আইপি ব্যবহার করতে আমি এটিকে পরিবর্তন করেছি এবং আমার অ্যাপ্লিকেশনটি কাজ শুরু করে।


0

অ্যাডমড ব্যবহার করে মাইক্রোসফ্ট অ্যানালিটিক পরিষেবাগুলিতে এমডিএক্স ক্যোয়ারী চালিয়ে পাইথন ক্লার দিয়ে ত্রুটিটি অনুভব করেছি

আমি হান্স ভনের সহায়তায় এটি সমাধান করেছি এবং এখানে অজগর সংস্করণটি রয়েছে:

clr.AddReference("System.Net")
from System.Net import ServicePointManager, SecurityProtocolType 
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls

0

যারা এটি পরে খুঁজে পেতে পারেন, নেট সংস্করণ ৪.6 পরে, আমিও এই সমস্যাটিতে চলে আসছি।

নিশ্চিত হয়ে নিন যে আপনি নীচের লাইনের জন্য আপনার ওয়েব.কমফিগ ফাইলটি পরীক্ষা করেছেন:

<compilation debug="true" targetFramework="4.5">
...
<httpRuntime targetFramework="4.5" />

আপনি যদি সার্ভারে 4.6.x বা .NET এর উচ্চতর সংস্করণটি চালিয়ে যাচ্ছেন তবে আপনার সার্ভারের ফ্রেমওয়ার্কের সংস্করণটি মেলে এই টার্গেটফ্রেমক মানগুলি সামঞ্জস্য করে তা নিশ্চিত করুন। যদি আপনার সংস্করণগুলি 4..6.x এর চেয়ে কম পড়ে থাকে, তবে আমি আপনাকে সুপারিশ করব। নেট এবং নতুন সংস্করণটি ব্যবহার করুন যদি না আপনার কোডটি কোনও পুরানো সংস্করণের উপর নির্ভর করে (তবে, এটি আপডেট করার বিষয়ে বিবেচনা করা উচিত)।

আমি লক্ষ্য ফ্রেমওয়ার্কগুলি 4.7.2 এ পরিবর্তন করেছি এবং সমস্যাটি অদৃশ্য হয়ে গেছে:

<compilation debug="true" targetFramework="4.7.2">
...
<httpRuntime targetFramework="4.7.2" />

নতুন ফ্রেমওয়ার্কগুলি সর্বোত্তম প্রোটোকল উপলব্ধ এবং অনিরাপদ বা অপ্রচলিত ব্যক্তিদের অবরুদ্ধ করে এই সমস্যার সমাধান করে। আপনি যে সংস্থাগুলির সাথে সংযোগ স্থাপন বা কল করার চেষ্টা করছেন সেটি যদি এই ত্রুটিটি দিচ্ছে তবে এটি হতে পারে যে তারা আর পুরানো প্রোটোকল সমর্থন করে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.