رفع خطای The request was aborted: Could not create SSL/TLS secure channel.

ضمن عرض سلام و خسته نباشد خدمت دوستان محترم
من یک api برای کلاینت سی شارپ به زبان php نوشته ام و روی هاست اپلود کردم
اما متاسفانه هنگام فراخوانی این وب سرویس در کلاینت روی ویندوز 7 با این خطا مواجه می شوم :

System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> 
System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.

برای مطمئن شدن از صحت عملکرد api اون رو روی یک سرور مجازی و یک هاست دایرکت ادمین دیگه قرار دادم و کلاینت با موفقیت اطلاعات رو از api دریافت کرد.

حتی من گواهی نامه های دامنه ی خودم رو عوض کردم و گواهی نامه جدید از وب سایت sslforfree.com دریافت کردم اما باز هم با همین مشکل رو به رو هستم.

ایا برای رفع این مورد نیاز به تنظیمات خاصی رو هاست خودم دارم ؟

مطابق با این جستجو فکر می کنم مشکل مشابه شما باشه. شخص بنده با دات نت آشنایی ندارم. شاید دوستان دیگه بتونن شما رو راهنمایی کنن.

2 Likes

پیش از مطرح کردن این موضوع در انجمن راهکار های ارائه شد در سایت های :
stackoverflow
github
support.microsoft
را بررسی و امتحان کردم اما هیچ نتیجه ای حاصل نشد :frowning:
اپدیت های سیستم عامل ویندوز 7 کاربر را انجام دادم اما نشد :frowning:
اما نکته ی جالب :
من دقیقا هین api رو ( بدون اتصال به دیتابیس ) روی یک هاست دایرکت ادمین و یک vps آلمان که وب سرور آپاچی روی ان فعال است قرار دادم و اپلیکیشن کلاینت به خوبی و با سرعت با هردوی آنها ارتباط برقرار کرده و مشکلی نبود -_-
من ورژن php فعال روی سرور مجازی و اکستنشن های نصب شده را با هاست خودم ( سون هاست ) مطابقت دادم و هیچ مورد خاصی یافت نشد
گواهی ssl وب سایتم را تغییر داده و از وب سایت sslforfree ( گواهی دامنه متصل به سرور مجازی تست هم از همین وب سایت تهیه شده ) گواهی جدید گرفتم اما باز هم همان خطای قبلی :frowning:

ببخشید من شاید دقیقا متوجه نشدم و به همین خاطر میپرسم مطمین بشم.
شما پروژه دات نت رو هاست لینوکس میزبانی کردید؟

خیر
من یک کلاینت ویندز فرم ( سی شارپ ) رو با استفاده از وب سرویس php که روی هاست لینوکسم اپلود شده به دیتابیس انلاین متصل کردم

سلام
باید ServicePointManager بسازید واسش با کامپوننت System.Net
جایی که ریکوئیست میده بسازید و ازش استفاده کنید

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

پیش از مطرح کردن این موضوع در انجمن راهکار های ارائه شد در سایت های :
stackoverflow
github
support.microsoft
را بررسی و امتحان کردم اما هیچ نتیجه ای حاصل نشد

من سایت هایی که گفتین را بررسی نکرده بودم که ببینم چیا توضیح دادن و از چیزی که میدانستم خدمتتون عرض کردم
و اینکه باید کدهایی که زدید را بررسی کرد من یا شخص دیگر بصورت شفاهی نمیتوانیم خدمتتون چیزی بگیم باید بررسی بشه و دید چطور و با چه کامپوننتی ریکوئست داده شده.

ابتدا از httpclient استفاده کردم
اما هیچ نتیجه ای نداد
مجددا کد رو باز نویسی کردم و از Restsharp استفاده کردم
اما باز هم دقیقا همان مشکل :

System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.

   at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context)

   at System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)

   --- End of inner exception stack trace ---

   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   at WindowsFormsApp2.Form1.<loginAsync>d__15.MoveNext() in C:\Users\tarah\Desktop\WindowsFormsApp2\WindowsFormsApp2\WindowsFormsApp2\Form1.cs:line 209