كيفية تنفيذ الإخراج المؤقت مع خدمات ويب في Visual C#.NET

ملخص

ملاحظة: مكتبة الفئات.NET Framework مساحات الأسماء التالية تتم الإشارة إليها في هذه المقالة:
  • System.Web.Services
  • System.Text
توضح هذه المقالة خطوة بخطوة كيفية إنشاء نموذج خدمة ويب ASP.NET التي تستخدم التخزين المؤقت للإخراج. التخزين المؤقت للإخراج وتخزين إخراج نتيجة استجابة خدمة ويب استناداً إلى سمة المدة المحددة ل المقابلة WebMethod.

ملاحظة: في ASP.NET 2.0، تم تغيير أسلوب HTTP لصفحة الاختبار من الحصول على وظيفة. ومع ذلك، الوظائف لا يتم عادة مؤقتاً. إذا قمت بتغيير الحصول على صفحة الاختبار في تطبيق خدمة ويب ASP.NET 2.0 لاستخدام التخزين المؤقت يعمل بشكل صحيح. بالإضافة إلى ذلك، يشير HTTP إلى أن عامل مستخدم (المستعرض أو تطبيق الاستدعاء) يجب أن يكون قادراً على تجاوز التخزين المؤقت للخادم بتعيين رأس التحكم في التخزين المؤقت ل "لا مخبأ." لذلك، تطبيقات ASP.NET تجاهل نتائج المخزن المؤقت عندما تجد رأس "لا ذاكرة التخزين المؤقت".

متطلبات

توضح القائمة التالية الأجهزة الموصى بها برامج البنية الأساسية للشبكة وحزم الخدمات المطلوبة:
  • متقدم Microsoft Windows 2000 Server أو نظام التشغيل Microsoft Windows 2000 Professional، Microsoft Windows 2000 Server أو نظام التشغيل Microsoft Windows XP
  • Microsoft.NET Framework
  • خدمات معلومات إنترنت ل Microsoft (IIS)

إنشاء تطبيق "خدمة ويب ASP.NET جديد"

إنشاء تطبيق خدمة ويب ASP.NET جديد باسم وسكاتشيسامبلي:

  1. بتشغيل Visual Studio.NET.
  2. من القائمة ملف ، أشر إلى جديد، ومن ثم انقر فوق المشروع لبدء "معالج المشروع الجديد".
  3. ضمن أنواع المشاريع، حدد Visual C#. ضمن قالب، حدد خدمة ويب ASP.NET.
  4. في المربع الموقع ، استبدال "" خدمة ويب "#" في مسار URL مع اسم المشروع، وسكاتشيسامبلي. إذا كنت تستخدم الملقم المحلي، ترك اسم الملقم ك http://localhost، حيث أن المربع الموقع تبدو مشابهة لهذه:
    http://localhost/WSCacheSample

إنشاء خدمة ويب نموذج

  1. في "مستكشف الحلول"، انقر نقراً مزدوجاً فوق عقده المشروع أشر إلى إضافةوثم انقر فوق إضافة خدمة ويب.
  2. للاسم، اكتب CacheDemo.asmx، ومن ثم انقر فوق فتح. فتح خدمة ويب في طريقة عرض التصميم.
  3. انقر نقراً مزدوجاً فوق خدمة ويب ومن ثم انقر فوق عرض التعليمات البرمجية.
  4. أضف التعليمات البرمجية التالية إلى ملف الفئة CacheDemo.asmx.cs. يؤدي هذا إلى إضافة سمة WebMethod المسمى جيتكاتشينتريتيمي مع CacheDuration من 60 ثانية.
    [WebMethod(CacheDuration=60)]public string GetCacheEntryTime(string Name)
    {
    StringBuilder sb = new StringBuilder("Hi ");
    sb.Append(Name);
    sb.Append(", the Cache entry was made at ");
    sb.Append(System.DateTime.Now.ToString());

    return(sb.ToString());
    }

    ملاحظة: افتراضياً، CacheDuration لسمة WebMethod يتم تعيين إلى 0، مما يعني أنه لم يتم مؤقتاً.
  5. لأنه يستخدم نموذج التعليمة البرمجية أسلوب StringBuilder ، يحتوي على مرجع إلى مساحة الاسم System.Text . مساحة الاسم لخدمة ويب تبدو مشابهة لهذه:
    using System;using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Web;
    using System.Web.Services;
    using System.Text;

    ملاحظة: لمزيد من المعلومات حول فئة StringBuilder ، قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب:
  6. في Visual Studio.NET IDE، انقر فوق إنشاء حلول في بنية القائمة.
  7. من القائمة ملف ، انقر فوق حفظ الكل لحفظ المشروع والملفات المقترنة.

اختبار المشروع

الآن بعد أن قمت بإنشاء نموذج كاتشيديمو خدمة ويب، قم بتشغيل جيتكاتشينتريتيميWebMethod مشاهدة تأثيرات إعداد السمة CacheDuration :
  1. في "مستكشف الحلول"، انقر نقراً مزدوجاً فوق CacheDemo.asmx، ومن ثم انقر فوق عرض في مستعرض.

    يفتح الملف.asmx في المستعرض، ويتم سرد سمةWebMethod جيتكاتشينتريتيميكعنصر في قائمة نقطية في أعلى الصفحة.
  2. انقر فوق الارتباط جيتكاتشينتريتيمي .
  3. في المربع اسم للأسلوب، اكتب جو وانقر فوق استدعاء لتشغيل السمة WebMethod وإرجاع النتيجة XML. لاحظ الطابع الزمني الذي يتم إرجاعه في الرسالة.

    ملاحظة: إذا كان يساعد WebServices لا تظهر صفحة، يمكنك تشغيل أسلوب خدمة ويب عن طريق كتابة ما يلي في مربع العنوان في مستعرض ويب:
    http://localhost/wscachesample/cachedemo.asmx/GetCacheEntryTime?Name=Joe
  4. تشغيل WebMethod مرة أخرى بكتابة جو. ملاحظة: إذا قمت بتشغيل السمة WebMethod في الثانية 60 فترة الوقت المحدد بواسطة السمة CacheDuration ، تظهر نفس الطابع الزمني.
  5. كرر الخطوة 4، ولكن اكتب Amy بدلاً من جو في المربع اسم المعلمة سمة WebMethod .

    لاحظ أن النتيجة طابع الوقت مختلفة. يحدث هذا بسبب الإخراج الافتراضي المؤقت نتيجة يستند إلى معلمات السمة WebMethod . في هذا المثال، جو قيمة المعلمة الاختبارات الأولين ويتم إرجاع الإخراج المخزنة مؤقتاً للاختبار الثاني. عند استخدام إيمي في الاختبار الثالث، تظهر نتيجة جديدة. تكرار الاختبار في غضون 60 ثانية، سوف تتلقى نتيجة إخراج المخزنة مؤقتاً. الفرق في الإخراج المؤقت الإصدار بالمعلمة سمة WebMethod .

استكشاف الأخطاء وإصلاحها

عندما تقرر تنفيذ تخزين مؤقت لخدمة ويب الخاصة بك أم لا، تذكر ذلك الملقم موارد يمكن أن تتأثر سلبا إذا يتنوع معلمات السمة WebMethod المقترنة بالطلبات أو إذا كانت تتضمن الاستجابات كميات كبيرة من البيانات.

المراجع

لمزيد من المعلومات حول خاصية WebMethodAttribute.CacheDuration وفئة ويبميثوداتريبوتي ، راجع الموضوع التالي في وثائق مكتبة الفئات.NET Framework:لمزيد من المعلومات حول خدمات ويب، قم بزيارة مواقع ويب MSDN التالي:
تضع مبادئ توجيهية لخدمات ويب XML التي تم إنشاؤها باستخدام ASP.NET
http://msdn2.microsoft.com/en-us/library/w8excbb0(vs.71).aspx

استخدام السمة WebMethod
http://msdn2.microsoft.com/en-us/library/byxd99hx(vs.71).aspx
لعينات إضافية ووثائق والارتباطات المتعلقة بالبرمجة مع.NET Framework، قم بزيارة موقع ويب CodePlex التالية:
خصائص

رقم الموضوع: 318299 - آخر مراجعة: 19‏/01‏/2017 - المراجعة: 1

تعليقات