4. تطوير واستخدام مكونات ASP:
1. ما هي المكونات؟
المزايا:
N سهل الاتصال ويحفظ الكود
سلامة عالية
معالجة معاملات NSUPPORT ، اتحاد متعدد المكونات
سرعة تشغيل NFACT
لا حاجة إلى تعديل الصفحة لترقية وتعديل المكونات ، لذلك لديها قابلية التوسع جيدة
ل عيوب:
صعوبات التنمية وتصحيح الأخطاء
2. كيف تتطور باستخدام VB؟
⑴. افتح VB >> NewProject >> ActiveX DLL
⑵. تعديل اسم المشروع إلى الدورة التدريبية
⑶. تعديل اسم وحدة الفئة ليكون conn_db
⑷. Project >> المراجع ، المراجع إلى COM+ SERVICE LIBRARY و Microsoft Active Server Pages Object.
⑸. قم بتعديل رمز الفصل على النحو التالي:
من www.knowsky.com
إنشاء اتصال قاعدة بيانات وإخراج حقل قاعدة البيانات
استجابة خافتة كاستجابة
طلب خافت كطلب
خادم DIM كخادم
تطبيق Dimapplicationas
جلسة DimSessionas
sub sub class_initialize ()
Dim ObjContext ككائن
تعيين OBJContext = getObjectContext ()
تعيين استجابة = objContext (استجابة)
تعيين طلب = OBJContext (طلب)
تعيين الخادم = OBJContext (الخادم)
تعيين التطبيق = objContext (التطبيق)
SET SESSION = OBJCONTEXT (الجلسة)
نهاية الفرعية
sub conn_db ()
تعيين conn = createObject (adodb.connection)
conn.open course_dsn ، course_user ، course_password
تعيين rs = createObject (adodb.recordset)
Rs.Open SELECT * من user_info ، conn ، 1 ، 1
إذا كان Rs.RecordCount> 0 ثم
لأني = 1 إلى Rs.RecordCount
استجابة. write <br> & rs (user_name) & <br>
إذا كان rs.eof ثم الخروج من أجل
Rs.Movenext
التالي
إنهاء إذا
Rs.close
تعيين روبية = لا شيء
conn.close
تعيين conn = لا شيء
نهاية الفرعية
⑹. أضف فئة جديدة
⑺. قم بتعديل رمز الفصل على النحو التالي:
"اعتراض السلسلة
وظيفة cutstr (Str ، الطول)
إذا كان Len (str)> الطول
cutstr = left (str ، length) & ...
آخر
cutstr = str
إنهاء إذا
وظيفة نهاية
⑻. ملف >> حفظ
⑼. ملف >> جعل الدورة التدريبية
3. المكونات المسجلة: MTS و REGSVR32.exe
هناك طريقتان لتسجيل المكونات: MTS واستخدام REGSVR32.EXE. ينصح MTS لأنه يحتوي على المزايا التالية:
N توازن إلغاء التثبيت الديناميكي لتحسين قابلية ترقية المكونات والتطبيقات القائمة على المكونات.
يحتوي N على القدرة على نشر مكونات الحدث وقائمة الانتظار وتقديمها ، مما يسهل الجمع مع مكونات متعددة.
لجعل المكون له خصائص MTS ، يجب إجراء تغيير بسيط للمكون. عند التطوير تحت NT و 98 ، يجب الرجوع إلى مكتبة نوع خادم Microsoft في المشروع ، وعند التطور ضمن Windows 2000 ، يجب الرجوع إلى مكتبة نوع الخدمة Com+.
⑴. التسجيل REGSVR32:
REGSVR32.EXE هو ملف قابل للتنفيذ ضمن SYSTEM32.
استخدم سطر الأوامر لإدخال الدليل حيث يوجد ملف DLL المكون ، وتنفيذ REGSVR32 DLL_FILE_NAME.
قم بتشغيل regedit ، و course.conn_db و course.cutstr أن عناصر Hey_Classes_Root ، مما يشير إلى أن تسجيل المكون ناجح.
⑵. سجل مع MTS:
①. ابدأ >> البرامج >> الأدوات الإدارية >> خدمات المكونات
②. قم بتوسيع الدليل إلى الحالة التالية:
③. اتبع المعالج ، الخطوة التالية حتى مربع الحوار التالي ، انقر فوق إنشاء تطبيق فارغ:
④. في مربع الحوار التالي ، قم بتسمية دورة التطبيق ، والافتراضات الافتراضية الأخرى حتى يكتمل
⑤. قم بتوسيع تطبيق الدورة التدريبية ، وانقر بزر الماوس الأيمن ، وإنشاء مكون جديد
⑥. اتبع المطالبات ومتابعة.
⑦. حدد المكونات التي طورناها ، الخطوة التالية حتى يتم الانتهاء منها
⑧. في هذا الوقت ، يمكنك أن تجد أن هناك عنصرين إضافيين ضمن تطبيق الدورة:
4. استدعاء المكونات في ASP
asp_use_com.asp
<٪
'ASP يدعو COM مكون
set cutstr_obj = server.createBject (course.cutstr)
Response.write cutstr_obj.cutstr (abcdefghijk ، 3) & <br>
تعيين cutstr_obj = لا شيء
تعيين conn_obj = server.createBject (course.conn_db)
conn_obj.conn_db ()
تعيين conn_obj = لا شيء
٪>
تأثير:
ABC ...
Ahyi
توث
وهذا يعني أن المكالمة ناجحة.
5. إلغاء تثبيت المكونات
⑴.
ملاحظة: أدخل الدليل أولاً حيث يوجد مكون DLL ، ثم استخدم REGSVR32 –u dll_file_name لإلغاء التثبيت ؛
⑵. باستخدام مكونات MTS المسجلة ، قم أولاً بحذف التطبيق المقابل في خدمة المكون ، ثم قم بإجراء الخطوة 1 لإلغاء تثبيت المكونات تمامًا.
6. موقع تخزين مكون DLL وإعدادات الإذن
⑴. نحتاج فقط إلى نسخ ملف DLL الذي تم تجميعه ، ولا يلزم معالجة الملفات الأخرى.
⑵. ضع DLL خارج موقع الويب ، كما هو الحال في دليل System32 ، لمنع التنزيل
⑶. يتم تعيين حقوق ملف DLL على قراءة النظام ، ومستخدمي الإنترنت يجتازون المجلدات/تشغيل الملفات
⑷. يزيل DLL جميع الأذونات في IIS ، مثل القراءة ، الوصول الطوعي إلى البرامج النصية ، إلخ.
بعد المعالجة أعلاه ، يمكن ضمان أمان ملف DLL.
7. آخر
كيفية استخدام كائن ASP في مكون لتنفيذ رمز ASP مريح إلى مكون COM؟
5. IIS التكوين الأمثل
1. علامة تبويب موقع الويب: IP ، المنفذ ، المضيف الظاهري ، الاتصال ، سجل
2. مرشح Isapi: أضف PHP و JSP دعم
3. علامة تبويب تكوين الدليل الرئيسي: I هي إعدادات الإذن (جنبًا إلى جنب مع حقوق الملف) ، إذن التنفيذ ، حماية التطبيق ، رسم الخرائط ، التخزين المؤقت ، مسار الوالدين ، معلومات الخطأ
4. علامات تبويب أخرى: أخطاء مخصصة ، رؤوس HTTP ، أمان الدليل ، الوثائق
5. فوائد وعيوب ضغط الملفات
السادس
1. أرسل بريدًا إلكترونيًا (Jmail ؛ MS SMTP)
إرسال رسائل بريد إلكتروني باستخدام Microsoft SMTP
⑴. تثبيت خدمة Microsoft SMTP
⑵. إعداد خدمة Microsoft SMTP
⑶. قسم الكود:
mail_smtp.asp
<٪
Submail الفرعي (من Whow ، Towho ، موضوع ، جسم)
قاتمة mymail
تعيين mymail = server.createBject (cdonts.newmail)
mymail.from = fromwho
mymail.to = towho
mymail.subject = الموضوع
mymail.body = الجسم
mymail.send
تعيين mymail = لا شيء
نهاية الفرعية
٪>
يقبل هذا الروتين الفرعي 4 معلمات المقابلة للعناصر التالية.
عنوان البريد الإلكتروني للمرسل
عنوان البريد الإلكتروني لمستلم البريد الإلكتروني
موضوع LeMail
محتوى LeMail
كيفية استخدام:
<٪
Fromwho = ...
TOWHO = ...
الموضوع = ...
الجسم = ...
إذا towho <> ثم
SendMail من Who ، Towho ، موضوع ، الجسم
إنهاء إذا
٪>
أرسل بريدًا إلكترونيًا باستخدام Jmail
إذا كنت مهتمًا ، فيمكنك مناقشته معي.
2. ملفات unzip zip (Wscript.shell و Winzip سطر أوامر ؛ مكونات Java)
⑴. تثبيت Winzip 8.1 أو أعلى
⑵. تثبيت سطر أوامر Winzip
⑶. قم بتعيين حقوق الملف لدليل العمل ليتم قراءتها وكتابتها وتعديلها من قبل مستخدمي الإنترنت
⑷. قسم الكود:
unzip_a_zipfile.asp
<٪
ابدأ البرنامج باستخدام كائن shell
'Zip_Path هو المسار إلى ملف zip المحدد ، مثل c: /test.zip
'المسار هو المسار لتخزين الملف غير المصدفة
ond هي معلمة سطر الأوامر
تعيين wshshell = server.createBject (wscript.shell)
مشكلة = wshshell.run (wzunzip -ond & zip_path & & path ، 1 ، true)
حذف ملف الرمز البريدي
set myFileObject = server.createBject (scripting.filesystemObject)
myfileObject.deletefile zip_path
الحكم على ما إذا كان من النجاح مواصلة العملية
إذا كانت المشكلة = 0 ثم
'نجاح
...
آخر
'يفشل
...
إنهاء إذا
٪>
3. تشغيل ملف XML
وقت التبادل محدود ، لذلك دعونا نناقشه بالتفصيل إذا كان لديك وقت
4. تحميل الملف
⑴. قم بتثبيت ملف asp componnt تحميل الملف (يدعم تحميل الملفات المتعددة ، ونوع الملف وحكم الحجم ، وتغيير اسم الملف بعد التحميل ، وما إلى ذلك)
⑵. أعد تشغيل IIS لجعل مكون التحميل فعالًا
⑶. قم بتعيين حقوق الملف في دليل التحميل حتى يتمكن مستخدمو الإنترنت من القراءة والكتابة والتعديل
⑷. قسم الكود
expload_file.htm
<نوع النمط = text/css>
<!-
.input {background-color: #FFFFF; border-bottom: black 1px solid;border-left: black 1px solid; border-right: black 1px solid; border-top: black 1px solid; color: #000000;font-family : جورجيا
A: Link {Color: #1B629C ؛
A: Hover {color: #ff6600 ؛
ج: زيارة {text-decoration: none}
->
</style>
<centre>
<form enctype = multipart/form-data method = post action = upload_file.asp name = upload>
<type type = hidden name = copyrightinfo value = http: //www.chinaasp.com>
يرجى تحديد ملف: <إدخال نوع = اسم الملف = file1 class = input> <br> <br>
يرجى تحديد ملف: <إدخال نوع = اسم الملف = file2 class = input> <br> <br>
</form>
<br> <br>
<a href = javaScript: document.upload.submit () ؛> إرسال </a>
</center>
تحميل _file.asp
<٪
عند استئناف الخطأ التالي
حدد الوظيفة التي تحصل على لاحقة الملف
وظيفة getFileStname (اسم الملف)
pos = instrev (اسم الملف ،)
إذا pos> 0 ثم
getFileStname = Mid (اسم الملف ، POS+1)
آخر
getFileStname =
إنهاء إذا
وظيفة نهاية
حدد الوظيفة للحصول على الاسم الصحيح للملف
وظيفة getFilename (اسم الملف)
عدسة = LEN (اسم الملف) -len (getFileStname (اسم الملف))-1
getFilename = اليسار (اسم الملف ، العدسة)
وظيفة نهاية
"إنشاء كائن لمكون تحميل الملف
set fileup = server.createObject (ChinaAsp.upload)
اقرأ الملف الذي تم تحميله بواسطة حلقة المستخدم وحفظه على الخادم
لكل f في fileup.files
"عندما لا يقوم المستخدم بتحديد ملف أو يتجاوز حجم الملف 10 أمتار ، ارجع إلى الصفحة حيث يتم تحديد الملف لتحميله
إذا كان f.filename = أو f.filesize> 10485500 ثم استجابة.
احصل على المسار المحفوظ
path = server.mappath (upload_file.asp)
المسار = اليسار (المسار ، لين (مسار) -15)
"حفظ الملف
F.Saveas Path & GetFilename (F.Filename) &. & getFileStname (F.Filename)
التالي
استجابة. REDIRECT UPLOAD_FILE.HTM
٪>
5. عمليات القيادة/الدليل/الملفات
وقت التبادل محدود ، لذلك دعونا نناقشه بالتفصيل إذا كان لديك وقت
6. تجربة الكتابة والتصحيح ASP: كيفية اختيار ملفات تعريف الارتباط والجلسات ، وعدد مصائد ملفات تعريف الارتباط ، وإنهاء صلاحية الصفحة وإعدادات التخزين المؤقت ، وكيفية ضمان قابلية الحمل ، وكيفية التعامل مع 500 خطأ في الخادم الداخلي ...
1. ملفات تعريف الارتباط وخيارات الجلسة:
⑴. ميزات مشتركة
⑵. الفرق:
①. كيف تعمل
②. شروط انتهاء الصلاحية
③. التأثير على أداء الخادم
2. فخ رقم ملفات تعريف الارتباط:
لا يمكن أن تنقذ أكثر من 20 ملفات تعريف الارتباط العامة ، ثم تُحدد ملفات تعريف الارتباط السابقة.
الجواب هو استخدام ملفات تعريف الارتباط 2D.
مثال:
اختبر الحد من عدد ملفات تعريف الارتباط 1D:
test_cookies_1.asp
<٪
لأني = 1 إلى 50
Response.cookies (cookies_ & i) = i
التالي
٪>
test_cookies_2.asp
<٪
لأني = 1 إلى 50
Response.write request.cookies (cookies_ & i) & <br>
التالي
٪>
تأثير:
قم أولاً بزيارة test_cookies_1.asp ، ثم test_cookies_2.asp ، ماذا وجدت؟
test_cookies_3.asp
<٪
لأني = 1 إلى 50
Response.cookies (cookies_ & i) = i
التالي
لأني = 1 إلى 50
Response.write request.cookies (cookies_ & i) & <br>
التالي
٪>
تأثير:
لا تضيع ملفات تعريف الارتباط! ! ! !
اختبر الحد من عدد ملفات تعريف الارتباط 2D:
test_cookies_4.asp
<٪
لأني = 1 إلى 301
Response.cookies (tuht) (cookies_ & i) = i
التالي
٪>
test_cookies_5.asp
<٪
لأني = 1 إلى 301
Response.write request.cookies (tuht) (cookies_ & i) & <br>
التالي
٪>
تأثير:
استخدم هذه الطريقة لاستخدام 201*20 = 4020 ملفات تعريف الارتباط! ! ! !
3. إعدادات الصفحة وإعدادات التخزين المؤقت
<٪
"انتهاء الصلاحية والتخزين المؤقت
استجابة. buffer = صحيح
استجابة
استجابة. expiresabsolute = الآن ()-1
استجابة. expires = 0
٪>
يمكنك أيضًا إعداد إعدادات في HTML:
<meta content = no cy clich http-equiv = pragma>
<meta http-equiv = انتهاء صلاحية المحتوى = 0>
4. ضمان قابلية الزرع
⑴. تضمين الملفات
<!-#تضمين ملف = top.asp->
⑵. استخدم server.mappath للعثور على مسارات الملف ، وتجنب استخدام المسارات المطلقة مباشرة في الصفحة
⑶. حاول استخدام المكونات لتغليف منطق العمل
5. خطأ تصحيح الخادم الداخلي 500
⑴. اضبط IIS لعرض رسائل خطأ محددة
⑵. خطوة بخطوة تصحيح الأخطاء ، من الأعلى إلى الأسفل
⑶. اطبع قيم بعض المتغيرات المهمة وتحقق مما إذا كان متوقعًا
⑷. الحكم على الأخطاء على أساس الخبرة
7. تشغيل مستندات الكلمات
⑴. تثبيت Office 2000 ، وهو أمر مطلوب لـ Word 2000
⑵. قم بتعيين أمان الإنترنت في IE: يتم تمكين جميع عناصر التحكم ActiveX والمكونات الإضافية
⑶. قم بتعيين حقوق الملف في دليل العمل لقراءة/تعديل/كتابة الإنترنت والنظام
⑷. كتابة قالب دورة
⑸. رمز محدد:
opr_doc_inc.asp
<٪
استجابة. write dim var_num & chr (13)
استجابة. write var_num = 2 & chr (13)
استجابة. WRITE DIM VARSTRINGS (2) و CHR (13)
استجابة. write varstrings (0) = & chr (34) & Drafter: & CHR (34) & CHR (13)
استجابة. write varstrings (1) = & chr (34) والتاريخ: & chr (34) و CHR (13)
استجابة. write dim varvalues (2) و CHR (13)
Response.write varvalues (0) = & CHR (34) و Drafter: Tu Haitao & CHR (34) & CHR (13)
Response.write varvalues (1) = & chr (34) والتاريخ: & date () و CHR (34) و CHR (13)
٪>
Sub بدلاً من ذلك (كلمة)
تعيين myrange = word.activedocument.content
ل I = 0 إلى var_num - 1
اتصل بـ myrange.find.execute (varstrings (i) ، خطأ ، خطأ ، خطأ ، خطأ ، خطأ ، خطأ ، خطأ ، خطأ ، خطأ ، varvalues (i) ، 2)
التالي
نهاية الفرعية
opr_doc.asp
<٪
احصل على المسار المحفوظ
path = server.mappath (opr_doc.asp)
المسار = اليسار (المسار ، لين (مسار) -11)
أسماء الملفات = المسار والاختبار
W1 = word.activedocument.saveas & chr (32) و CHR (34) وأسماء الملفات و CHR (34)
W2 = wapp.documents.Open & CHR (32) و CHR (34) وأسماء الملفات و CHR (34)
٪>
<لغة البرنامج النصي = vbscript>
عند استئناف الخطأ التالي
"إنشاء مستند كلمة باسم ملف محدد
كلمة خافتة
اضبط Word = CreateObject (Word.Application)
إذا err.number> 0 ثم
حدث خطأ في حالة تأهب ، يرجى تأكيد ما إذا كان الملف موجودًا
آخر
Word.visible = خطأ
word.documents.Open <٪ response.write path ٪> cours.dot
<٪ استجابة. write w1 ٪>
word.documents.close
اضبط كلمة = لا شيء
إنهاء إذا
<!-#تضمين ملف = opr_doc_inc.asp->
قاتمة Wapp
تعيين wapp = createObject (word.application)
إذا err.number> 0 ثم
حدث خطأ في حالة تأهب.
آخر
wapp.visible = صحيح
<٪ استجابة. write w2 ٪>
اتصل بدلاً من ذلك (WAPP)
تعيين wapp = لا شيء
إنهاء إذا
</script>
التأثير: تحقق مما إذا كان تم إنشاء ملف DOC؟ ما هو الفرق بين ملف DOC وملف القالب الذي تم إنشاؤه حديثًا؟ هل تغير الصياغة والتاريخ؟ احفظه وشاهد محتويات ملف DOC الذي تم إنشاؤه حديثًا.
مُرفَق:
1. تم اختبار جميع الرموز المذكورة أعلاه وتمريرها تحت Windows 2000 Server SP2+IIS 5.0+MS SQL Server 2000+Office 2000
2. تكوين قاعدة البيانات: دورة قاعدة البيانات ، دورة المستخدم ، user _user ، password course_password ، برنامج تشغيل ODBC هو course_dsn ، المنفذ هو 2433 ، البرامج النصية التي تصف بنية الجدول موجودة في الدليل المشترك.
3. يرجى تنزيل البرنامج ASP Fileup و Jmail و Winzip 8.1 و Winzip Line بنفسك.
4. ملف البرنامج النصي لقاعدة البيانات:
إذا كان موجودًا (حدد * من dbo.sysObjects حيث id = object_id (n '[dbo].
إجراء إسقاط [DBO]. [Output_1]
يذهب
إذا كان موجودًا (حدد * من dbo.sysobjects حيث id = object_id (n '[dbo]. [return_1]') و ObjectProperty (id ، n'isprocedure ') = 1)
إجراء إسقاط [DBO]. [return_1]
يذهب
إذا كان موجودًا (حدد * من dbo.sysObjects حيث id = object_id (n '[dbo].
إجراء إسقاط [DBO]. [user_info_1]
يذهب
إذا كان موجودًا (حدد * من dbo.sysObjects حيث id = object_id (n '[dbo].
إجراء إسقاط [DBO]. [user_info_2]
يذهب
إذا كان موجودًا (حدد * من dbo.sysObjects حيث id = object_id (n '[dbo].
إجراء إسقاط [DBO]. [user_info_3]
يذهب
إذا كان موجودًا (حدد * من dbo.sysObjects حيث id = object_id (n '[dbo].
جدول إسقاط [DBO]. [user_info]
يذهب
إنشاء جدول [DBO]. [user_info] (
[ID] [int] الهوية (1 ، 1) ليس فارغًا ،
[user_name] [varchar] (40) collate inchoval_prc_ci_as not null ،
[كلمة المرور] [varchar] (20) collate inchoval_prc_ci_as not null
) على [الابتدائية]
يذهب
جدول تغيير [DBO]. [user_info] مع إضافة nocheck
القيد [pk_user_info] keyclustered keyclustered
(
[اسم المستخدم]
) على [الابتدائية]
يذهب
تعيين quoted_identifier قبالة
يذهب
تعيين ANSI_Nulls قبالة
يذهب
إنشاء إجراء [output_1]
sid int الإخراج
مثل
تعيين @SID = 2
يذهب
تعيين quoted_identifier قبالة
يذهب
تعيين ANSI_Nulls على
يذهب
تعيين quoted_identifier قبالة
يذهب
تعيين ANSI_Nulls قبالة
يذهب
إنشاء إجراء [return_1]
(user_name varchar (40) ،@password varchar (20))
مثل
إذا كان موجودًا (حدد معرفًا من user_info حيث user_name =@user_name و password =@password)
العودة 1
آخر
إرجاع 0
يذهب
تعيين quoted_identifier قبالة
يذهب
تعيين ANSI_Nulls على
يذهب
تعيين quoted_identifier على
يذهب
تعيين ANSI_Nulls قبالة
يذهب
إنشاء إجراء [user_info_1]
(user_name varchar (40) ،@password varchar (20))
مثل
حدد المعرف من user_info حيث user_name =@user_name و password =@password
يذهب
تعيين quoted_identifier قبالة
يذهب
تعيين ANSI_Nulls على
يذهب
تعيين quoted_identifier قبالة
يذهب
تعيين ANSI_Nulls قبالة
يذهب
إنشاء إجراء [user_info_2]
(user_name varchar (40) ،@password varchar (20))
مثل
اضبط Xact_abort على
ابدأ الصفقة
حذف من user_info حيث user_name =@user_name و password =@password
ارتكاب الصفقة
تعيين Xact_abort قبالة
يذهب
تعيين quoted_identifier قبالة
يذهب
تعيين ANSI_Nulls على
يذهب
تعيين quoted_identifier قبالة
يذهب
تعيين ANSI_Nulls قبالة
يذهب
إنشاء إجراء [user_info_3] كـ
حدد * من user_info
يذهب
تعيين quoted_identifier قبالة
يذهب
تعيين ANSI_Nulls على
يذهب