سؤال

أحتاج إلى عملية تجمع البيانات اليومية في ملف PDF يتم إرفاقها في بريد إلكتروني. لقد استخدمت بالفعل MSSQL لإرسال رسائل بريد إلكتروني في التطبيق الذي يتم تطويره وأرغب في الاستمرار في استخدام MSSQL كمعالج بريد إلكتروني.

في بحثي ، وجدت أنه يمكن تحقيق ذلك عن طريق إنشاء خدمة Windows. لكن بما أنني أرغب حقًا في تشغيل هذه العملية مرة واحدة يوميًا ؛ يبدو أن الحفاظ على خدمة Windows نشطة دائمًا مبالغة.

لم أستخدم مجدولة المهام أبدًا لتشغيل تطبيق مصمم ذاتيًا. أريد أن أتأكد من أنني سأقوم بالطريقة الصحيحة. كما أفهم ، سأضطر إلى ...

  1. إنشاء مشروع جديد (المشروع X) في Visual Studio
  2. البرنامج (المشروع X) لإنشاء PDF والتفاعل مع MSSQL لإرسال البريد الإلكتروني
  3. بناء (المشروع X) في exe
  4. حدد موعد EXE باستخدام جدولة المهام لتشغيله على أي جدول أحتاجه.

هل هناك أي جوانب أمنية يجب أن أشعر بالقلق؟ فقط تلك التي يمكنني التفكير فيها هي تشفير سلسلة اتصال MSSQL الخاصة بي ؛ وبطبيعة الحال ، إبقاء EXE خارج الدليل الذي يمكن الوصول إليه على الويب يتواجد تطبيق الويب فيه.

شكرًا لك مقدمًا على المساعدة/التأكيد كما أعرف أن البعض يعتقد أن هذا سؤال سخيف.

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

المحلول

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

نصائح أخرى

كما يلاحظ Esteban: هل سيتم تشغيل هذا فقط تحت حسابك وهل ستظل موقعة على الجهاز؟ لو ذلك، الذي - التي هو أكبر مخاطر أمنية. يمكنك استخدام توفير الشاشة لإجبار موجه تسجيل الدخول وصحيح إلى حد كبير أن هذا ليس أقل أمانًا من تسجيل الخروج. ومع ذلك ، أشك في أن هذا سيعتبر "أفضل الممارسات".

أود أن أفكر في بناء خدمة Windows التي تستيقظ ببساطة مرة واحدة في اليوم. ليس من الصعب جدًا بناءها على الرغم من أنك تريد أن تتأكد من أن لديك آلية اختبار جيدة (فئة مستقلة تقوم بتجميعها في DLL قابلة للاختبار هي فكرة جيدة) لأن اختبارها بمجرد تشغيلها أمر صعب للغاية . ولكن لا تدع "لغز" تطبيقات الخدمة أو فكرة استخدام الموارد تؤجلك. سوف تفاجأ بمدى سهولة ذلك. بقدر ما تذهب الموارد ... أنت تنفق المزيد من الموارد مع الحفاظ على تشغيل تطبيق WinForms الكامل!

إذا كنت ترغب في إنشاء خدمة Windows ، فيمكنك تعيينها للبدء عند بدء تشغيل الخادم (الذي يتواجد عليه قاعدة البيانات). سيكون لدي نظام تتبع خارجي لإرسال رسائل البريد الإلكتروني ، ربما في قاعدة بيانات منفصلة. عندما يبدأ الخادم ، تبدأ خدمتك أيضًا. شيكات الخدمة إذا تم إرسال بريد إلكتروني اليوم. إذا لم يكن الأمر كذلك ، فقم ببناء البريد الإلكتروني ، ثم أرسل البريد الإلكتروني ، ثم حدده في السجل (جدول DB الذي أفترضه). ثم قم بتنام الخدمة لمدة 24 ساعة ، ثم اجعلها تحقق مرة أخرى (باستخدام حدث). يكرر.

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