تقدم هذه المقالة بشكل أساسي الطريقة البديلة للأذونات غير الكافية لوظيفة نقل ملف ASP. تقدم هذه المقالة أولاً طريقة بديلة، ثم تكتشف السبب الفعلي ويمكن للأصدقاء الذين يحتاجون إليها الرجوع إليها.
أنا أعمل على مشروع هذه الأيام، وهو كتابة بيان لنقل جميع الملفات الموجودة على محرك الأقراص D إلى محرك الأقراص E، ومن الجيد اختباره في بيئة XP المحلية.
ومع ذلك، بعد وضعه على خادم Windows 2003، فإنه يطالب بأن الأذونات غير كافية.
تم وضع دليل موقع IIS الخاص بي على محرك الأقراص D، ومحرك الأقراص E هو مجرد وحدة تخزين تمت إضافتها حديثًا. بعض الملفات كبيرة جدًا وهناك الكثير، لكن محرك الأقراص D ليس كافيًا، لذلك توصلت إلى هذه الإستراتيجية.
بعد البحث في بايدو، العديد من هذه المشاكل ليست أكثر من مجرد زيادة أذونات محرك الأقراص E، أو استخدام محرك الأقراص E كدليل افتراضي.
لكنه لا يعمل، ولا يزال التذكير موجودًا، والفرق الوحيد هو أنني أستخدم وحدة تخزين ديناميكية، بينما في نظام التشغيل XP لا أرغب في تغيير مستوى الصوت.
وأخيرا وجدت الطريقة التالية:
عند استخدام ملف النقل الخاص بـ fso، لن تكون هناك أذونات كافية، لذلك لا يمكن تنفيذ التعليمات البرمجية.
لذا استخدم Copyfile ثم احذف الملف لتجنب المشاكل غير الضرورية.
الآن:
انسخ رمز الكود كما يلي:
تعيين fso=CreateObject("scripting.filesystemobject")
fso.MoveFile "مسار الملف"، "الهدف"
وهذا سوف يسبب مشاكل.
يستخدم:
انسخ رمز الكود كما يلي:
تعيين fso=CreateObject("scripting.filesystemobject")
fso.CopyFile "مسار الملف"، "الهدف"
fso.DeleteFile "مسار الملف"
هذا حل المشكلة بشكل حاسم. يمكن نسخها ولكن لا يمكن نقلها.
تحديث 4.30
بعد بعض التعديلات، اتضح أن المشكلة ليست في أذونات محرك الأقراص E، ولكنها مشكلة في أذونات محرك الأقراص D، أي مشكلة في أذونات دليل موقع IIS.
قم بإضافة حساب ضيف إنترنت إلى محرك الأقراص D، أي قم بإضافة حساب يبدأ بـ IUSR_.
ثم استخدام MoveFile لا توجد مشكلة.
إذا كنت تريد نقل ملف أو حذفه، فإن أول شيء يجب عليك التحقق منه هو أذونات الملف المصدر، وليس أذونات الملف الهدف.
البرامج التعليمية على الإنترنت ضارة حقًا.