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