"অন্তর্নিহিত সংযোগটি বন্ধ ছিল: একটি প্রেরণে একটি অপ্রত্যাশিত ত্রুটি ঘটেছে” " এসএসএল শংসাপত্র সহ


119

ইস্যু: আমি এই ব্যতিক্রমটি পেয়েছি "আমার অন্তর্ভুক্ত সংযোগটি বন্ধ ছিল: আমার লগগুলিতে একটি অনিচ্ছাকৃত ত্রুটি হয়েছে" এবং এটি এলোমেলো সময়ে আমাদের ইমেইল বিপণন ব্যবস্থার সাথে আমাদের ই এম ইন্টিগ্রেশন ভেঙে চলেছে [১ ঘন্টা - ৪ ঘন্টা]

আমার ওয়েবসাইটটি আইআইএস 7.5.7600 এর সাথে উইন্ডোজ সার্ভার 2008 আর 2 এ হোস্ট করা হয়েছে। এই ওয়েবসাইটে প্রচুর পরিমাণে ই এম উপাদান এবং বিস্তৃত ড্যাশবোর্ড রয়েছে। আমাদের ইমেল বিপণন উপাদান যা আমরা আমাদের ড্যাশবোর্ডের মধ্যে একটি iframe সমাধান হিসাবে ব্যবহার করছি একটি বাদ দিয়ে ওয়েবসাইটের অন্যান্য উপাদানগুলির সাথে সবকিছু ঠিকঠাক কাজ করে। এটি যেভাবে কাজ করে তা হ'ল, আমি সমস্ত শংসাপত্রের সাথে একটি httpWebRequestobject প্রেরণ করি এবং আমি একটি url ফিরে পাই যা আমি একটি আইফ্রেমে রেখেছিলাম এবং এটি কাজ করে works তবে এটি কেবল কিছু সময়ের জন্য কাজ করে [1 ঘন্টা - 4 ঘন্টা] এবং তারপরে আমি নীচের ব্যতিক্রমটি পাই "অনার্নিংয়ের সংযোগটি বন্ধ ছিল: একটি অযৌক্তিক ত্রুটি অনিয়ন্ত্রিত" এবং এমনকি যদি সিস্টেমটি httpWebRequest এর URL টি পেতে চেষ্টা করে তবে একই ব্যতিক্রম ব্যর্থ। এটি আবার কাজ করার একমাত্র উপায় হ'ল অ্যাপ্লিকেশন পুল বা যেকোন কিছুতে ওয়েবকনফিগ সম্পাদনা করা re

বিকল্প চেষ্টা করা হয়েছে

স্পষ্টভাবে যোগ করা হয়েছে, keep-alive = false

keep-alive = true

সময় বাড়িয়ে দেওয়া: <httpRuntime maxRequestLength="2097151" executionTimeout="9999999" enable="true" requestValidationMode="2.0" />

আমাদের প্রোডাকশন সার্ভারে এসএসএল শংসাপত্রটি কীভাবে ড্রপ করার জন্য সংযোগ তৈরি করছে কিনা তা পরীক্ষা করতে আমি এই পৃষ্ঠাটি একটি নন এসএসএল ওয়েবসাইটে আপলোড করেছি।

রেজোলিউশনের দিকে যে কোনও দিক প্রশংসিত হয়।

কোড:

Public Function CreateHttpRequestJson(ByVal url) As String
    Try
        Dim result As String = String.Empty
        Dim httpWebRequest = DirectCast(WebRequest.Create("https://api.xxxxxxxxxxx.com/api/v3/externalsession.json"), HttpWebRequest)
        httpWebRequest.ContentType = "text/json"
        httpWebRequest.Method = "PUT"
        httpWebRequest.ContentType = "application/x-www-form-urlencoded"
        httpWebRequest.KeepAlive = False
        'ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3

        'TODO change the integratorID to the serviceproviders account Id, useremail 
        Using streamWriter = New StreamWriter(httpWebRequest.GetRequestStream())
            Dim json As String = New JavaScriptSerializer().Serialize(New With { _
            Key .Email = useremail, _
            Key .Chrome = "None", _
            Key .Url = url, _
            Key .IntegratorID = userIntegratorID, _
            Key .ClientID = clientIdGlobal _
            })

            'TODO move it to the web.config, Following API Key is holonis accounts API Key
            SetBasicAuthHeader(httpWebRequest, holonisApiKey, "")
            streamWriter.Write(json)
            streamWriter.Flush()
            streamWriter.Close()

            Dim httpResponse = DirectCast(httpWebRequest.GetResponse(), HttpWebResponse)
            Using streamReader = New StreamReader(httpResponse.GetResponseStream())
                result = streamReader.ReadToEnd()
                result = result.Split(New [Char]() {":"})(2)
                result = "https:" & result.Substring(0, result.Length - 2)
            End Using
        End Using
        Me.midFrame.Attributes("src") = result
    Catch ex As Exception
        objLog.WriteLog("Error:" & ex.Message)
        If (ex.Message.ToString().Contains("Invalid Email")) Then
            'TODO Show message on UI
        ElseIf (ex.Message.ToString().Contains("Email Taken")) Then
            'TODO Show message on UI
        ElseIf (ex.Message.ToString().Contains("Invalid Access Level")) Then
            'TODO Show message on UI
        ElseIf (ex.Message.ToString().Contains("Unsafe Password")) Then
            'TODO Show message on UI
        ElseIf (ex.Message.ToString().Contains("Invalid Password")) Then
            'TODO Show message on UI
        ElseIf (ex.Message.ToString().Contains("Empty Person Name")) Then
            'TODO Show message on UI
        End If
    End Try
End Function


Public Sub SetBasicAuthHeader(ByVal request As WebRequest, ByVal userName As [String], ByVal userPassword As [String])
    Dim authInfo As String = Convert.ToString(userName) & ":" & Convert.ToString(userPassword)
    authInfo = Convert.ToBase64String(Encoding.[Default].GetBytes(authInfo))
    request.Headers("Authorization") = "Basic " & authInfo
End Sub`

আপনি কি কখনও এটি খুঁজে বের করতে পারেন?
ব্রেট জি

11
হ্যাঁ আমি এই কোডটি দিয়ে সার্ভিসপয়েন্ট
ম্যানেজার.সিকিউরিটিপ্রোটোকল

আমি একই ইস্যুতে মারা যাচ্ছিলাম। একই সমস্যা নিয়ে संघर्ष করে আমাকে কয়েক ঘন্টা সময় নিয়েছে। আপনার মন্তব্যের জন্য ধন্যবাদ, এটি আমার দিনটি বাঁচিয়েছে।
সমীর জাভেদ 13

2
@ ইউজার 3458212 আপনার উত্তর হিসাবে আপনার মন্তব্য যুক্ত করা উচিত
আইসিসি

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

উত্তর:


193

আমার জন্য এটি tls12 ছিল:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

42
মনে রাখবেন যে আপনাকে অবশ্যই সাবধানতা অবলম্বন করতে হবে কারণ এই পরিবর্তনটি আপনার অ্যাপডোমাইনের কাছে বিশ্বব্যাপী, এবং যে কোনও সাইটে টিএলএস ১.২ অফার করে না এমন কলগুলি ব্যর্থ হতে পারে (যা আপনি যদি তথ্য স্থানান্তরিত করতে চান তবে সত্যই সংবেদনশীল) prefer টিএলএস ১.২ পছন্দ করতে তবে 1.1 এবং 1.0 কে অনুমতি দিন, আপনার বা তাদের এগুলি করতে হবে:ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
ডাস্টি

এখানেই, আপনি আমার জীবন বাঁচিয়েছেন, রেস্টশার্পে কী হয়েছে তা বের করতে এতটা সময় ব্যয় করেছেন
darul75

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

বা কেবল এটি ইতিমধ্যে যা আছে তা এটিকে যুক্ত করুন ... System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
uosjead

8
পাওয়ারশেলে এটি করতে, "বাইনারি বা" তাদের একসাথে পছন্দ করুন:[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls
অ্যাডাম এস

62

আপনি যদি নেট নেট 4.0.০ এর সাথে আটকে থাকেন এবং টার্গেট সাইটটি টিএলএস ১.২ ব্যবহার করছে তবে তার পরিবর্তে আপনার নিম্নলিখিত লাইনের প্রয়োজন। ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

উত্স: টিএলএস 1.2 এবং। নেট সহায়তা: সংযোগ ত্রুটিগুলি কীভাবে এড়ানো যায়


5
অসাধারণ! আমি কেবল এটি যুক্ত করব যা (SecurityProtocolType)768"Tls11" (যেমন টিএলএস 1.1) এর জন্য ব্যবহার করা যেতে পারে।
সলোমন রুটজকি

2
এটি সত্যই সহায়তা করে। এটা আমার দিন বাঁচায়। আমাকে। নেট ২.০ দিয়ে আটকাতে হবে।
হাও এনগুইন

22

নীচের কোডটি সমস্যার সমাধান করেছে

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls Or SecurityProtocolType.Ssl3

5
এটি কাজ করবে তবে মনে রাখবেন যে ServicePointManager.SecurityProtocolএটি একটি স্ট্যাটিক অবজেক্ট যার অর্থ এই মানটি পরিবর্তন করা সমস্ত উপ-অনুক্রম WebRequestবা WebClientকলকে প্রভাবিত করবে । আপনি আলাদা সেটিংস রাখতে AppDomainচাইলে আপনি আলাদা তৈরি করতে পারেন ServicePointManager। আরও তথ্যের জন্য stackoverflow.com/questions/3791629/… দেখুন ।
stack247

1
এই কোডটি কী করছে তা বোঝার জন্য অতিরিক্ত অতিরিক্ত পড়া: stackoverflow.com/questions/26389899/…
জন স্নাইডার

@ মার্নি আমি এটিকে আমার অ্যাপ্লিকেশনটির রচনার মূলটিতে রেখেছি, সুতরাং এটি যে কোনও আই / ও-এর আগে স্থাপন করা হয়েছে
এস.ডি.-

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

14

আমি এখন ইন্টিগ্রেশন নিয়ে বেশ কয়েকদিন ধরে একই সমস্যা ছিল যা কেবল "আগে কাজ করত"।

নিদারুণ হতাশার বাইরে, আমি কেবল চেষ্টা করেছি

 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;

এটি আমার জন্য সমাধান করেছে .. যদিও ইন্টিগ্রেশন কঠোরভাবে কেবল SSLv3 ব্যবহার করে।

আমি অনুধাবন করতে পেরেছিলাম যে ফিডলার যখন বলেছিলেন যে "ফাঁকা টিএলএস আলোচনার সিফার" আছে বা এর মতো কিছু রয়েছে তখনই কিছু বন্ধ ছিল।

আশা করি এটি কার্যকর!


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

13

আমার ক্ষেত্রে আমি যে সাইটের সাথে সংযোগ করছি সেটিকে টিএলএস 1.2 তে আপগ্রেড করা হয়েছে। ফলস্বরূপ এটি সমর্থন করার জন্য আমাকে আমার ওয়েব সার্ভারে .net 4.5.2 ইনস্টল করতে হয়েছিল।


এটি কি মেশিনে রেজিস্ট্রি পর্যায়ে করা যেতে পারে? টিএলএস ১.০, ১.১, ১.২ রেখে আমি সমস্ত এসএসএল প্রোটোকল অক্ষম করে রেখেছি, তবে এটি আমার বোঝা যায় যে পিসিআই অনুগত হওয়ার জন্য টিএলএস ১.২ এর চেয়ে কম যে কোনও কিছুই শীঘ্রই অপসারণ করা উচিত।
brendo234

13

আপনি কোন নেট নেটটাইমটি ব্যবহার করছেন তা যাচাই করতে আপনার ওয়েবকনফিগ / অ্যাপকনফাইগ এ যান

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>

সমাধান এখানে:

  1. .NET 4.6 এবং উপরের। টিএলএস ১.২ সমর্থন করার জন্য আপনার কোনও অতিরিক্ত কাজ করার দরকার নেই, এটি ডিফল্টরূপে সমর্থিত।

  2. .NET 4.5। টিএলএস ১.২ সমর্থিত তবে এটি ডিফল্ট প্রোটোকল নয়। এটি ব্যবহারের জন্য আপনাকে অপ্ট-ইন করতে হবে। নিম্নলিখিত কোডটি টিএলএস 1.2 কে ডিফল্ট করে তুলবে, সুরক্ষিত সংস্থার সাথে সংযোগ স্থাপনের আগে এটি কার্যকর করা নিশ্চিত করুন:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

  1. .NET 4.0। টিএলএস ১.২ সমর্থিত নয়, তবে আপনার যদি .NET 4.5 (বা তারপরে) সিস্টেমে ইনস্টল করা থাকে তবে আপনি যদি এখনও আপনার অ্যাপ্লিকেশন কাঠামোটি সমর্থন না করে তবে আপনি TLS 1.2 এর জন্য বেছে নিতে পারেন। একমাত্র সমস্যা হ'ল .NET 4.0 এ সিকিউরিটিপ্রোটোকল টাইপ টিএলএস 1.2-তে প্রবেশ করে না, সুতরাং আমাদের এই এনাম মানের সংখ্যার উপস্থাপনা ব্যবহার করতে হবে:

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

  1. .NET 3.5 বা নীচে। টিএলএস ১.২ সমর্থিত নয় (*) এবং কোনও কার্যকারিতা নেই। আপনার অ্যাপ্লিকেশনটিকে ফ্রেমওয়ার্কের আরও সাম্প্রতিক সংস্করণে আপগ্রেড করুন।

6

আমি খুঁজে পেয়েছি যে এটি যে একটি সার্ভার যেখানে আপনি কোড নিযুক্ত করছেন সেই সার্ভারে একটি পুরানো .NET ফ্রেমওয়ার্ক ইনস্টল রয়েছে যা টিএলএস 1.1 বা টিএলএস 1.2 সমর্থন করে না। ঠিক করার পদক্ষেপ:

  1. আপনার প্রোডাকশন সার্ভারগুলিতে সর্বশেষতম .NET রানটাইম ইনস্টল করা হচ্ছে (আইআইএস এবং এসকিউএল)
  2. আপনার বিকাশ মেশিনে সর্বশেষতম .NET বিকাশকারী প্যাক ইনস্টল করা ।
  3. আপনার ভিজ্যুয়াল স্টুডিও প্রকল্পগুলির "টার্গেট ফ্রেমওয়ার্ক" সেটিংস সর্বশেষ .NET ফ্রেমওয়ার্কে পরিবর্তন করুন।

আপনি এই ইউআরএল থেকে সর্বশেষতম .NET বিকাশকারী প্যাক এবং রানটাইম পেতে পারেন: http://getdotnet.azurewebsites.net/target-dotnet-platforms.html


টার্গেট ফ্রেমওয়ার্কটি 4.5.2 থেকে 4.6.1 এ পরিবর্তিত হয়েছে এবং কাজ শুরু করেছেন, প্যাট্রিককে ধন্যবাদ।
বিবেক শর্মা

4

আমাদের এই সমস্যাটি হয়েছিল যার মাধ্যমে একটি ওয়েবসাইট যা আমাদের এপিআইতে অ্যাক্সেস করছে সেটি "অন্তর্নিহিত সংযোগটি বন্ধ ছিল: একটি প্রেরণে একটি অপ্রত্যাশিত ত্রুটি ঘটেছে” " বার্তা।

তাদের কোডটি .NET 3.x এবং 2.2 এর মিশ্রণ ছিল, যা আমি বুঝতে পেরেছি এর অর্থ তারা টিএলএস 1.0 ব্যবহার করছে।

নীচের উত্তরটি আপনাকে টিএলএস 1.0, এসএসএল 2 এবং এসএসএল 3 সক্ষম করে সমস্যাটি নির্ণয় করতে সহায়তা করতে পারে তবে খুব স্পষ্ট করে বলতে গেলে আপনি দীর্ঘমেয়াদী করতে চান না কারণ এই তিনটি প্রোটোকলই তিনটিই নিরাপত্তাহীন হিসাবে গণ্য হয়েছে এবং আর হওয়া উচিত নয় ব্যবহৃত :

আমাদের আইআইএসকে তাদের এপিআই কলগুলিতে সাড়া দেওয়ার জন্য আমাদের টিআইএস-এর সংস্করণগুলি স্পষ্টভাবে সক্ষম করতে আইআইএসের সার্ভারে রেজিস্ট্রি সেটিংস যুক্ত করতে হয়েছিল - দ্রষ্টব্য: এই পরিবর্তনগুলি করার পরে আপনাকে উইন্ডোজ সার্ভারটি পুনরায় চালু করতে হবে (কেবলমাত্র আইআইএস পরিষেবা নয়):

[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

যদি এটি না করে, আপনি এসএসএল 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

স্পষ্ট করে বলতে গেলে, এটি কোনও দুর্দান্ত সমাধান নয় , এবং কলারকে টিএলএস ১.২ ব্যবহার করার জন্য সঠিক সমাধানটি রয়েছে, তবে উপরের অংশটি নির্ধারণ করতে সহায়তা করতে পারে যে এটিই সমস্যা।

আপনি এই পাওয়ার শেল স্ক্রিপ্টের সাহায্যে নিবন্ধগুলিতে নিবন্ধগুলি যুক্ত করতে দ্রুত করতে পারেন:

$ProtocolList       = @("SSL 2.0","SSL 3.0","TLS 1.0", "TLS 1.1", "TLS 1.2")
$ProtocolSubKeyList = @("Client", "Server")
$DisabledByDefault = "DisabledByDefault"
$Enabled = "Enabled"
$registryPath = "HKLM:\\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\"

foreach($Protocol in $ProtocolList)
{
    Write-Host " In 1st For loop"
        foreach($key in $ProtocolSubKeyList)
        {         
            $currentRegPath = $registryPath + $Protocol + "\" + $key
            Write-Host " Current Registry Path $currentRegPath"
            if(!(Test-Path $currentRegPath))
            {
                Write-Host "creating the registry"
                    New-Item -Path $currentRegPath -Force | out-Null             
            }
            Write-Host "Adding protocol"
                New-ItemProperty -Path $currentRegPath -Name $DisabledByDefault -Value "0" -PropertyType DWORD -Force | Out-Null
                New-ItemProperty -Path $currentRegPath -Name $Enabled -Value "1" -PropertyType DWORD -Force | Out-Null    
    }
}
 
Exit 0

এটি ভিএমএমের জন্য টিএলএস সেটআপ করার জন্য মাইক্রোসফ্ট সহায়তা পৃষ্ঠা থেকে স্ক্রিপ্টটির একটি পরিবর্তিত সংস্করণ । এই বেসিকসনটিক নিবন্ধটি সেই পৃষ্ঠাটি ছিল যা মূলত আমাকে এই সেটিংসটি দেখার জন্য ধারণা দেয়।


আমাদের সমস্যাটি টিম সিটির মাধ্যমে একটি রিলিজ পাইপলাইন জুড়ে ছিল যা হঠাৎ বন্ধ হয়ে যায় যখন আমরা আপনার লাইভ সার্ভারের শংসাপত্র পরিবর্তন করি। আমরা ইতিমধ্যে কেবলমাত্র টিএলএস 1.2 ব্যবহার করার জন্য সার্ভারটি পরিবর্তন করে দিয়েছি এবং আমাদের টিম সিটি পাইপলাইন কাজ করা বন্ধ করে দিয়েছে ... স্বপ্নের মতো কাজ করেছে ... রেজি এন্ট্রি যুক্ত করেছে এবং সার্ভারটি পুনরায় চালু করেছে ... বুম !!! ধন্যবাদ টমরেডক্স !!
গওয়াশোপাপা

@ গওয়াস্প্প্পা, কেবলমাত্র পুনরাবৃত্তি করতে যে এই সমস্যাটি সনাক্ত করার জন্য উপরেরটি কেবল স্টপগ্যাপ। এখন আপনি জানেন যে এটি একটি টিএলএস সংস্করণ ইস্যু সমাধান হ'ল রিলিজ পাইপলাইন পরিবর্তন করা যাতে এটি টিএলএস 1.2 এর সাথে কাজ করতে পারে এবং তারপরে আবার টিএলএস <1.2 এবং এসএসএল 2 এবং 3 স্যুইচ অফ করে। আমি উপরের উত্তরটি কিছুটা চাপ দিয়ে সামান্য আপডেট করেছি।
tomRedox

4

শুধু যোগ কর:

সার্ভিসপয়েন্ট ম্যানেজ.সিকিউরিটিপ্রোটোকল = সিকিউরিটিপ্রোটোকল টাইপ.টিএস 12;


1
আপনার উত্তর সহ একটি ব্যাখ্যা প্রদান করুন।
ওয়ার্ড রিয়ারঞ্জার

4
এই উত্তরটি পূর্বেরগুলিতে কোনও কিছুই যুক্ত করে না।
অরবিন্দ মণি

2

এটি যদি কাউকে সহায়তা করে তবে আমাদের অনুপস্থিত শংসাপত্রের বিষয়টি ছিল। এনভায়রনমেন্ট। নেট 4.6 সহ উইন্ডোজ সার্ভার 2016 স্ট্যান্ডার্ড।

একটি স্ব-হোস্টেড ডাব্লুসিএফ পরিষেবা https ইউআরআই রয়েছে, যার জন্য পরিষেবা.ওপেন () ত্রুটি ছাড়াই কার্যকর করা হবে। আর একটি থ্রেড https: // আওয়ার আইপি: 443 / আওয়ার সার্ভিস? ডাব্লুএসডিএল অ্যাক্সেস করতে থাকবে যাতে পরিষেবাটি উপলব্ধ ছিল কিনা তা নিশ্চিত করতে। এতে ডাব্লুএসডিএল অ্যাক্সেস করা ব্যর্থ হয়েছিল:

অন্তর্নিহিত সংযোগটি বন্ধ ছিল: একটি প্রেরণে একটি অপ্রত্যাশিত ত্রুটি ঘটেছে।

প্রযোজ্য সেটিংস সহ সার্ভিসপয়েন্ট ম্যানেজার.সিকিউরিটিপ্রোটোকল ব্যবহার করা কার্যকর হয়নি। সার্ভারের ভূমিকা এবং বৈশিষ্ট্যগুলি নিয়ে খেললে কোনও লাভ হয়নি। তারপরে এসই জায়েস জর্জে পদক্ষেপ নিয়েছিলেন , কয়েক মিনিটের মধ্যেই এই সমস্যাটি সমাধান করা। Jaise আইআইএস একটি স্ব স্বাক্ষরিত শংসাপত্র ইনস্টল, ইস্যু poofing। সমস্যাটি সমাধানে তিনি এটাই করেছেন:

(1) আইআইএস ম্যানেজার খুলুন (inetmgr) (2) বাম প্যানেলে সার্ভার নোডে ক্লিক করুন, এবং "সার্ভার শংসাপত্রগুলি" ডাবল ক্লিক করুন। (3) ডান প্যানেলে "স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করুন" এ ক্লিক করুন এবং বন্ধুত্বপূর্ণ নামের জন্য আপনি যা চান তা টাইপ করুন। (৪) বাম প্যানেলে "ডিফল্ট ওয়েব সাইট" এ ক্লিক করুন, ডান প্যানেলে "বাইন্ডিংস" ক্লিক করুন, "যুক্ত করুন" ক্লিক করুন, "https" নির্বাচন করুন, আপনি সবেমাত্র তৈরি করেছেন শংসাপত্রটি নির্বাচন করুন এবং "ওকে" ক্লিক করুন (5) অ্যাক্সেস https ইউআরএল, এটি অ্যাক্সেসযোগ্য হওয়া উচিত।


আপনি ভেবেছিলেন সার্ভার অ্যাডমিন এসএসএল শংসাপত্র যুক্ত করেছে, যদিও! ডি আহা! লল :) আমি এটি ঘটতে দেখতে পাচ্ছি, যদিও - বা একটি মেয়াদোত্তীর্ণ শংসাপত্রের পুনর্নবীকরণের প্রয়োজন সম্ভবত আরও প্রযোজ্য দৃশ্য হবে।
vapcguy

2

আপনি কেবল আপনার অ্যাপ্লিকেশন সংস্করণটি 4.0 থেকে 4.6 এর মতো পরিবর্তন করুন এবং সেই কোডগুলি প্রকাশ করুন।

কোড লাইন নীচে যুক্ত করুন:

httpRequest.ProtocolVersion = HttpVersion.Version10; 
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

1

এইচডিটিপি ডিবাগিং প্রক্সি ব্যবহার করা এর কারণ হতে পারে - যেমন ফিডলার।

আমি একটি স্থানীয় ফাইল (পিপলএক্সের কাছে প্রমাণীকরণ) থেকে পিএফএক্স শংসাপত্রটি লোড করছি এবং এটি ব্যর্থ হয়েছে কারণ ফিডলার এই শংসাপত্রটি পাস করতে সক্ষম হন নি।

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


0

নীচের কোডটি আমার সমস্যার সমাধান করেছে:

request.ProtocolVersion = HttpVersion.Version10; // THIS DOES THE TRICK
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.