معرفی
اخیراً آزمایشهای بارگیری را در ویژوال استودیو انجام دادم، اما با خطای «درخواست ناموفق بود: درخواست لغو شد: کانال امن SSL/TLS ایجاد نشد» دریافت کردم. آن تست های بار قبلاً خوب کار می کردند اما ناگهان از کار افتادند. پس از بررسی، متوجه شدم که اخیراً سرور تولیدی ما تغییراتی در پشتیبانی از پروتکل TLS داشته است و اکنون پشتیبانی TLS 1.2 اضافه شده است.
![خطای دادن تست بارگیری ویژوال استودیو - درخواست ناموفق - درخواست لغو شد - کانال امن SSL/TLS ایجاد نشد](http://pezhvak24.ir/dl/10kcor/cscd/article/visual-studio-load-test-giving-error-request-failed-the-request-was-aborted/Images/Visual Studio Load Test Giving Error - Request Failed - The Request Was Aborted - Could Not Create SSL TLS Secure Channel.jpg)
بنابراین، علت تغییر اخیر در سرور است، اما اکنون باید راه حلی برای حل مشکل پیدا کنیم و تست بارگذاری را در ویژوال استودیو اجرا کنیم.
راه حل ها
برای حل این مشکل باید افزونه Web Performance Test Plug-In ایجاد کنیم.
- یک پروژه تست عملکرد و بارگذاری وب که حاوی تست بارگذاری وب است را باز کنید.
- در Solution Explorer روی راه حل کلیک راست کرده و Add را انتخاب کنید و سپس New Project را انتخاب کنید. کادر محاوره ای افزودن پروژه جدید نمایش داده می شود.
- در قسمت Installed Templates، Visual C# را انتخاب کنید.
- در لیست الگوها، Class Library را انتخاب کنید.
- در کادر متنی Name یک نام برای کلاس خود تایپ کنید. OK را انتخاب کنید.
- پروژه جدید کتابخانه کلاس به Solution Explorer اضافه می شود و کلاس جدید در ویرایشگر کد ظاهر می شود.
- در Solution Explorer، روی پوشه References در کتابخانه کلاس جدید کلیک راست کرده و Add Reference را انتخاب کنید.
- کادر محاوره ای Add Reference نمایش داده می شود.
- برگه NET را انتخاب کنید، به پایین بروید و Microsoft.VisualStudio.QualityTools.WebTestFramework را انتخاب کنید. OK را انتخاب کنید.
- مرجع Microsoft.VisualStudio.QualityTools.WebTestFramework به پوشه Reference در Solution Explorer اضافه می شود.
- در Solution Explorer، روی گره بالای پروژه آزمایش عملکرد و بارگذاری وب که حاوی تست بارگذاری است که میخواهید افزونه تست عملکرد وب را به آن اضافه کنید، راست کلیک کرده و Add Reference را انتخاب کنید.
- کادر محاوره ای Add Reference نمایش داده می شود. تب Projects را انتخاب کرده و Class Library Project را انتخاب کنید. OK را انتخاب کنید.
- در ویرایشگر کد، کد پلاگین خود را بنویسید. ابتدا یک کلاس عمومی جدید ایجاد کنید که از WebTestPlugin مشتق شده است.
- کد را در یک یا چند کنترل کننده رویداد پیاده سازی کنید.
- public class Tls12ForcedPlugin : WebTestPlugin
- {
- [Description("Enable or Disable the plugin functionality")]
- [DefaultValue(true)]
- public bool Enabled { get; set; }
- public override void PreWebTest(object sender, PreWebTestEventArgs e)
- {
- base.PreWebTest(sender, e);
- // We're using SSL2 here and not TLS. Without this line, nothing works.
- ServicePointManager.SecurityProtocol = (SecurityProtocolType)(0xc00);// SecurityProtocolType.Ssl2;
- //we wire up the callback so we can override behavior and force it to accept the cert
- ServicePointManager.ServerCertificateValidationCallback = RemoteCertificateValidationCB;
- //let them know we made changes to the service point manager
- e.WebTest.AddCommentToResult(this.ToString() + " PP has made the following modification-> ServicePointManager.SecurityProtocol set to use SSLv3 in WebTest Plugin.");
- }
- public static bool RemoteCertificateValidationCB(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
- {
- //If it is really important, validate the certificate issuer here.
- //this will accept any certificate
- return true;
- }
- }
- اگر از Framework 4.0 استفاده می کنید، ممکن است با خطای SecurityProtocolType.Ssl2 not found مواجه شوید.
برای چارچوب دیگر،
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12
برای فریم ورک 4.0،
(نوع پروتکل امنیتی)(0xc0 | 0x300 | 0xc00)
- پس از نوشتن کد، پروژه جدید را بسازید.
- تست عملکرد وب را باز کنید. برای افزودن افزونه تست عملکرد وب، Add Web Test Plug-in را در نوار ابزار انتخاب کنید.
- کادر محاوره ای Add Web Test Plug-in نمایش داده می شود. در بخش Select a plug-in، کلاس افزونه تست عملکرد وب خود را انتخاب کنید.
- در قسمت Properties for the menu plug-in، مقادیر اولیه را برای استفاده در زمان اجرا تنظیم کنید. OK را انتخاب کنید.
- افزونه به پوشه Web Test Plug-ins اضافه می شود.
- حالا اگر سعی کنید تست بارگذاری را اجرا کنید، به خوبی اجرا می شود.