سؤال

لدي خدمة Windows مضبوطة لنسخ الملفات من دليل محلي إلى مشاركة سامبا.

تتصل الخدمة عبر مسار UNC بالخادم (أي. emoteserver\shareddir).

لقد قمت بتسجيل الدخول باعتباري المستخدم الذي تعمل الخدمة من خلاله، وتمكنت من نسخ الملفات وإنشاء ملفات على مشاركة السامبا، باستخدام مسار UNC.

ومع ذلك، عند تشغيل الخدمة، أتلقى استثناءات io تشير إلى خطأ في تسجيل الدخول.لقد قمت بتشغيل مراقب العمليات في هذا المربع، وأشاهد الخدمة ويمكنني رؤيتها وهي تبحث عن مسار UNC ولكني أتلقى خطأ في تسجيل الدخول عند محاولة الكتابة إلى المشاركة.

يتم ذلك باستخدام استدعاء Vanilla .net System.IO.File.Copy العادي.

لا أفهم الأخطاء، لأنه عند تسجيل الدخول تحت نفس المستخدم، أكون قادرًا على نسخ وإنشاء الملفات على المشاركة.

أيه أفكار؟

يحرر:نص الاستثناء

خطأ في حلقة المعالجة الرئيسية (Dowork ()):فشل تسجيل الدخول:اسم مستخدم غير معروف أو كلمة مرور سيئة.

استثناء النظام:خطأ في myservice.processexportTransferfileDiredies وقيمه:D: Export ، remoteserver intray ، d: export Archive ---> System.io.ioException:فشل تسجيل الدخول:اسم مستخدم غير معروف أو كلمة مرور سيئة.

في System.io .__ error.winioerror (int32 errorcode ، string learfullpath) في system.io. error.winioerror () في system.io.file.move (سلسلة المصدر ، سلسلة destfilename)
في myservice.consumer.businesslogic.wmsfacade.moveAndarchivefile (سلسلة المصدر ، سلسلة الهدف ، Archivefolder ، سلسلة الجذر ، LogCategory LogCategory ، LogCounter Logcounter) --- نهاية التتبع الداخلي للاستثناء --- في MyService.Consumer.BusinessLogic.wmsAdeD. MoveAndarchiveFile (String SourceFolder ، سلسلة الهدف ، Archivefolder ، سلسلة الجذر ، LogCategory LogCategory ، LogCounter logcounter) على myservice.consumer.businesslogic.wmsfacade.processexporttransfer

هل كانت مفيدة؟

المحلول

انتهى الأمر بمشكلة تتعلق بالأذونات - بعد تشغيل الخدمة كمستخدم مختلف تم إعداده على مشاركة السامبا، تم تشغيلها دون مشكلة، مع نسخ الملفات عبرها.

ما زلت لا أفهم لماذا عند استخدام حساب مختلف، يمكنني نسخ/إنشاء ملفات على المشاركة باستخدام مستكشف Windows ولكن عندما كانت الخدمة تعمل تحت نفس الحساب، لم تتمكن من الوصول إلى المشاركة على الإطلاق :(

نصائح أخرى

أوصي بتعيين محرك أقراص أولاً ثم القيام بنسخ الملف إلى محرك الأقراص المعين بدلاً من المشاركة.

يمكنك تعيين محرك أقراص باستخدام الأمر dos net use.على سبيل المثال:

System.Diagnostics.Process.Start("net", "use h: \remoteserver\shareddir /User:domian\me password")

هذا يجب أن يحل أي مشاكل في تسجيل الدخول.

أداة مفيدة للغاية في حالتك هي مراقب العملية.فقط قم بتشغيله كمسؤول وأضف الفلتر التالي:

Process Name is "your_process.exe" AND Operation is "CreateFile"

سترى معلومات مفصلة حول الملفات التي تحاول العملية استخدامها.

كما ذكرنا ، عندما أقوم بتسجيل الدخول بنفس الحساب الذي تعمل فيه الخدمة كما ، ليس لدي أي مشاكل في النسخ وإنشاء ملفات على المشاركة.- oded قبل 1 دقيقة

هل منحت حساب المستخدم الخدمة قيد التشغيل كأذونات "تسجيل الدخول كخدمة" في سياسة الأمان المحلية؟؟

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