الملف.نسخ أقفال الملف المصدر بعد الانتهاء

StackOverflow https://stackoverflow.com/questions/603444

  •  03-07-2019
  •  | 
  •  

سؤال

نحن نحاول نسخ ملف من ملقم إلى الجهاز المحلي في .NET 2.0 تطبيق (C#) ، ولكن يبقى وجود الملف المصدر داع مؤمن.نحن المشتبه به هو شيء تم تكوينها على ملقم الملفات التي تسبب هذا السلوك ، ولكن لم تكن متأكدا من ما ...يمكنك أن تساعد ؟

بعد عملية نسخ ملف الملف الخادم (ويندوز 2K3 R2) التقارير التي تفيد بأن الملف المصدر يقام مع قراءة قفل ، على الرغم من أن أي مزيد من العملية هو القيام به مع الملف على الخادم.يتم تحرير القفل بمجرد إنهاء التطبيق.

نحن قادرون على إنتاج السلوك حتى مع أبسط التعليمات البرمجية أدناه :

static void Main(string[] args)
{
    string sourceFile = @"\\win2K3server\resource\Production\IQE\sourceFolder\iqeconsole.exe";
    string destinationFile = @"d:\destinationFolder\iqeconsole.exe";
    System.IO.File.Copy(sourceFile,destinationFile,true);

    Console.ReadLine();
}

قفل occurrs على الفور أثناء File.Copy() خط وتنفيذ استمرت بعد هذا الخط قد انتهى.في عالم أكثر تعقيدا التطبيق ، عندما الروتين مع File.Copy() مخارج(ولكن التطبيق لا يزال قيد التشغيل) ، قفل قائما.

فقط عندما يكون التطبيق بالكامل انتهى هو قفل صدر.

تغيير sourceFile استخدام محرك أقراص بدلا من مسار UNC لا فرق في السلوك.

هذا السلوك لا يحدث عندما يكون مصدر الملف على ملقم آخر أو يقع محليا.

إذا كنا إضافة السطر التالي بعد File.Copy, القفل صدر على الفور :

new System.Security.Permissions.FileIOPermission(System.Security.Permissions.FileIOPermissionAccess.Read, new string[] { sourceFile }).Demand();

كل هذا يبدو لنا كما لو أن هناك شيء على الخادم الذي يسبب هذا السلوك.لدينا ShadowProtect المثبتة على الخادم جنبا إلى جنب مع مكافحة الفيروسات مكافي.وبصرف النظر عن ذلك ، يبدو كما لو أن هناك أي شيء آخر ركبت فوق و فوق Windows Server ومكوناته.

نحن أيضا لا يدري لماذا تطالب قراءة الأذونات على الملف يحل المشكلة.

إذا كنت تستطيع الإجابة على هذه الأسئلة ، ونحن نقدر ذلك كثيرا:

  1. ما يسبب أقفال الملف إلى الاستمرار ؟
  2. لماذا لا تطالب قراءة إذن حل هذه المشكلة ؟
هل كانت مفيدة؟

المحلول

وربما هو McAfee على الوصول الماسح الضوئي الذي يحمل القفل.إذا كنت تستخدم فقط حق الوصول للقراءة ، فمن تجاوزها.أعتقد أنه يمكنك استخدام Sysinternals العملية أداة عارض (مجانا من مايكروسوفت) لتأكيد ذلك.

غير متأكد ماذا الاشتراك لديك مكافي, ولكن يمكنك تحديد استثناء القواعد بحيث لا تفحص هذا الملف.

نصائح أخرى

أنا لست قادرا على تكرار هذه على ملقمات الملفات.

ومع ذلك, أنا لا أعرف الحصري معطل منذ نستخدمه PeerLock قبل PeerSoftware.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top