الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ارجو المساعدة في استدعاء البرنامج من السيرفير

مغلق
بدأه abdulilahksa في 16 ديسمبر 2005 · 13 رد · 1,420 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلاع عليكم ورحمة الله وبركاته شاكر لكم حسن عونكم لاخوانكم وجعلها الله في درجات حسناتكم

اخواني لقد صممت تطبيق متكامل وحملته غلى سيرفير 2003

وقمت بربطه في الفريم وروك وبعد

ذلك استعيدته من جهاز اخر كلينت فاعطاني رسالة خطا وهي

العنوان : common language rentime debugging services

النص : application has generated an exception that could not be handled

process id=oxcd4 (3284),thread id=oxb00(2816

clic ok to terminate

click cancel to debug

مع اني نزلت الفريم ورك والجافا على الكلينت ارجو المساعدة

#2
اقتباس
مع اني نزلت الفريم ورك والجافا على الكلينت ارجو المساعدة

السلام عليكم , عزيزي لا علاقة للجافا على جهاز المستخدم User مادامت اللغة المستخدمة VB.NET

ثانياً بارك الله فيك البرنامج يُنَصَبَ على جهاز المستخدم User وليس على الخادم Server

لانه البرنامج Front End وليس BackEnd العادة تكون قاعدة البيانات وعلى قولهم المنطق logic على الخادم Server

مثل التقارير أو الـ Stored Procedures أو Objects لكن ليس البرنامج !!! .

والله اعلم.

في المثال يتضح المقال

#3

مشكور اخي الكريم على تفاعلك

على ماعلم توجد طريقتان

1 - انك تحمل التطبيق على السيرفير وتضع وصله من كل كلينت لتنفيذ البرنامج وهذي تسهل في عمليات التحديث البرنامج والتحكم به ولكنه متعبه لسيرفير

2 انك تجعل التطبيق في الكلينت وقاعدة البيانات في السيرفير وهذي تتعب في عملية الصيانة والتحديث

وانا اختارت الطريقة الاولى واعطاني نفس الرسالة السابقة

#4

نعم من الممكن أن يتم تنصيب التطبيق على الـ Server و يتم استخدامه على الـ Client..

بالنسبة للمشكلة هل قمت بعمل Setup Deployment للتطبيق أم لا..؟؟

ثم ان هناك بعض النقاط التي يجب أن تراعى عند استخدام هذه الطريقة، مثل ملف الـ EXE و ملفات الـ Dll الخاصة بالتطبيق و التي يجب أن تكون موجودة في Mapped Drive و يجب أن تحدد درجة الـ Security لها عن طريق Trust an Assembly الموجود في الـ dot Net Framewrk Wizards

رأس الحكمة الإيمان بالله

#5

مشكور اخي الكريم

مهو مقصودك Setup Deployment لقد قمت بعمل سيتاب وحمالته على السيرفير

وارجو ان توضح لي طريقة Mapped Drive

وكيفية وضع الصلاحيات في ويندوز 2003

والصلاحيات في الفريم وروك في ويندوز 2003

وشاكر لك اخي الكريم

#6

عذراً ... أقصد Setup Project ...

اليك هذا الرابط الذي يشرح كيفية عمل الـ Mapped Drive و وضع التطبيق به حتى يستطيع كل من في الشبكة استخدامه وكيفية تحديد الـ Security Policy للتطبيق حتى لا يحدث أي Security Exception :

KB article # 832742 - How to deploy a .NET Framework application to run from a network location

و لكن هذا لن يحل المشكلة الأصلية... هل هناك أي اعتمادية على Dlls معينة في تطبيقك؟؟ Controls مثلاً ...

و أخيراً تأكد من الـ Setup Project ... هل تم بطريقة صحيحة ؟؟

رأس الحكمة الإيمان بالله

#7

مشكور اخي الكريم على تجاوبك

بنسبه للبرنامج يوجد عدد من ملفات الدلل مرتبطه بالتطبيق

وبخصوص سيتاب فقد تم بشكل صحيح على السيرفير

شاكر ومقدر لك

#8

شاكر ومقدر لك اخي

بالنسبه لتعريف الدريف لقد وضحت

ولكن الاشكالية في تنفيذ البرنامج على السيرفير

#9

هل ملفات الـ Dlls موجودة في نفس مكان الـ exe ؟؟؟

طيب قم بتسجيل هذه الملفات في الـ GAC على الـ client ، و شغل البرنامج و اخبرنا عن النتيجة...

رأس الحكمة الإيمان بالله

#10

اعتقد ان ملفات dll موجوده في exe

ولكن يحتمال ارتبطه مع ملفات في ويندوز

احببت ان تعرفلي GAC

شاكر ومقدر لك

#11

الـ GAC أو الـ Global Assembly Cache هو مكان بالذاكرة لوضع ملفات الـ dlls به لإمكانية استخدام هذه الملفات في تطبيقات عديدة، بمعنى لو عندك التطبيق A يستخدم ملف الـ dll المسمى بـ dataProvider.dll مثلاً و في نفس الوقت يوجد التطبيق B الذي يستخدم نفس ملف الـ dll المسمى بـ dataProvider.dll فما عليك الا أن تضع هذا الملف في الـ GAC حتي يستطيع كلا التطبيقين أن يستخدما هذا الملف في نفس الوقت بدلاً من وضع الملف في نفس مكان الـ exe لكل التطبيقات..

مزيداً عن الـ GAC

و كيفية وضع dll في الـ GAC :

Working with Assemblies and the Global Assembly Cache

بالنسبة للمشكلة الأصلية، ماذا تعني بهذه الجملة:

اقتباس
اعتقد ان ملفات dll موجوده في exe

هل تعني ان ملفات الـ dlls موجودة بنفس الفولدر الموجود به الـ exe أم ان هذه الملفات موجودة في الـ exe كـ Embedded Resource أي مطمورة في ملف الـ exe ؟؟

رأس الحكمة الإيمان بالله

#12

اخي العزيز حدث لي مشكلة شبة مشكلتك وحلها لي الاخ العزيز محمد النحراوي

وكان كلامة كالتالي :

أخي الكريم جرب الآتي :

- افتح Control Panel ثم Administrative Tools ثم Microsoft .NET Framework 1.1 Configuration

- من القائمة اليسرى اختر My Computer ثم Runtime Security Policy ثم Machine ثم Code Groups ثم All_Code ثم LocalIntranet_Zone

- الآن من الصفحة التي في اليمين اضغط الرابط المسمى Add a Child Code Group

- في الشاشة التي تظهر أمامك حدد اسم مجموعة جديدة (Code Group) وليكن اسمها مثلا MyProjects ثم اضغط Next

- الآن قم باختيار Condition حدد النوع URL من القائمة المنسدلة وهنا سيظهر مربع نص أسف القائمة اكتب داخله مسار المشروعات التي تريد ان تشارك عليها ، مثلا :

file://YourServer/My Documents/Visual Studio Projects/*

ثم اضغط Next

- الآن حدد من القائمة التي تحت العنوان Use existing permission نوع الترخيص ، اختر FullTrust ثم اضغط Next

- اضغط Finish

الآن جرب فتح المشروع على جهازك وأخبرني بالناتج

وان شاء الله تنفع معك هذة الطريقة

يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل

سبحان الله وبحمده ... سبحان الله العظيم

#13

السلام عليكم اخي الكريم شاكر ومقدر لك

مساعداتك وحرصك وادعوى الله ان يجعله في موزين حساناتك

واتمنى ان يستفيد منها الاخوان

اخي الكريم لقد وجدت المشكلة في الفريم وروك انه معطوب على السيرفير اليوم واصبح غير مفعل

واصبح يعطيني نفس الرسالة السابقة على السيرفير

ممكن اخي محمد تعطيني كتاب او وصله تتكلم عن استخد برامج الدوت نت على السيرفير 2003 وطرق تفعيلة بالشكل الامثال

واشاكر لك ومقدر

#14
اقتباس
ممكن اخي محمد تعطيني كتاب او وصله تتكلم عن استخد برامج الدوت نت على السيرفير 2003 وطرق تفعيلة بالشكل الامثال

للأسف أخي الفاضل لا أملك كتاب يتحدث عن هذا الموضوع، و أعتقد بل أؤمن ان المشكلة ليس لها علاقة بنشر التطبيق على السيرفر 2003، و انما المشكلة بسبب طريقة الـ Deployment نفسها، و بإذن الله لها حل..

سؤال: هل تضمنت ملفات الـ dll في مشروع الـ Deployment ؟؟ أعني هل تأكدت من ذلك؟؟

و ان كنت تستخدم الـ Sub Main لتشغيل التطبيق، فضع هذه الأسطر حتى تظهر رسالة الـ Exception بكلام مفهوم:

Sub Main()

AddHandler Application.ThreadException, AddressOf GetExceptionHandler

dim frm as new MainForm
Application.Run(frm)

End Sub

public sub GetExceptionHandler(sender as object, e as ThreadExceptionEventArgs)
   MessageBox.Show("Error" + VBcrlf  + e.Message + VBCrlf + e.Source _
+ VBCrlf + e.StackTrace, "Exception")
End Sub

و أساساً ان كنت لا تستخدم الـ Sub Main لتشغيل التطبيق فإستخدمها بالطريقة السابقة حتى نحصل على معلومات عن الـ Exception.

أرجو أن تعلمنا بالنتيجة..

وفقك الله..

رأس الحكمة الإيمان بالله

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…