PDA

View Full Version : مشکل در اجرای برنامه در شبکه محلی



sh
سه شنبه 23 مرداد 1386, 21:56 عصر
سلام

توی یکی از برنامه هائی که نوشتم خواستم بصورت ساده برنامه رو توی شبکه اجرا کنم

فولدر برنامه رو Share کردم و از توی کلاینت یهshortcut از برنامه که داخل پوشه Share شده بود روی دکستاپ کلاینت گذاشتم وقتی اجرا کردم ارور داد که عکسش رو ضمیمه میکنم

توی محل مورد نظر اررو از Permission اسکیو ال داد و تو خونه هم شبکه دارم تست کردم ارور IO Permission

یکم موضوع رو بررسی کردم به یه چیزهائی رسیدم ولی متاسفانه درست نشد . یه جائی هم گفته بود با strong name میشه ولی بازم نشد

لینک جاهائی که راجبش خوندم رو اینجا میگذارم اگر کسی اطلاعاتی داره یه راهنمائی دقیق کنه

http://www.vbforums.com/showthread.php?t=435840 (http://www.vbforums.com/showthread.php?t=435840)

http://jhermiz.googlepages.com/serverapp (http://jhermiz.googlepages.com/serverapp)

http://www.codeproject.com/dotnet/Using_MSI_or_a_strong_na2.asp (http://www.codeproject.com/dotnet/Using_MSI_or_a_strong_na2.asp)

http://blogs.msdn.com/shawnfa/archive/2004/12/30/344554.aspx (http://blogs.msdn.com/shawnfa/archive/2004/12/30/344554.aspx)

malizadeh
چهارشنبه 24 مرداد 1386, 07:11 صبح
چون برنامه رو داری درون سیستم کلاینت اجرا می کنی باید ارتباط SQL رو به صورت شبکه تعریف کنی یعنی اینکه باید آدرس IP سرور و نام کاربری و کلمه عبور برای ارتباط با SQL رو به connectionstring اضافه کنید.

در ضمن اگر فایل در سیستم سرور باشه و شما آن را Share کرده باشید و آن را در کلاینت اجرا کنید دقیقاً برابر اینه که شما برنامه رو ببرید روی سیستم دیگه که به شبکه وصل نیست اجرا کنید.

__H2__
چهارشنبه 24 مرداد 1386, 09:29 صبح
سلام
بهتر است به جای Share کردن پوشه ای که برنامه در آن قرار دارد، کل برنامه را برای هر کلایت کپی و در صورت لزوم نصب کنید، خیلی بهتر جواب میدهد و قانوناً هم این درست است.

یعنی هر کلایت کپی خود را دارد، در صورت لزوم میتوانید از داخل برنامه موجود در کلایت به بانک sql server موجود در server و فایلهای share شده در سرور دسترسی پیدا کنید.
یعنی بهتر بگویم منظورم آن است که exe تان در خود کلاینت باشد. اینطوری مشکلات کمتری خواهید داشت.
البته طبیعی است که مقداری از کدهایتان را باید تغییر دهید ولی اگر درست پیاده سازی شود می ارزد!
اینطوری حتی با کمی کد نویسی خاص تر میتوانید از شبکه معمولی هم فراتر روید و مثلاً exe موجود در کلاینت را به sql server موجود در web وصل کنید و برنامه تان را طوری طراحی کنید که مثلاً شرکتی که چندین شعبه در نقاط مجزا دارد هم بتواند با کمک یک website میزبان از برنامه شما استفاده کند.....

گرچه مثال زیاد خوبی نیست ولی مثلاً Yahoo Messanger

موفق باشید.

حامد مصافی
چهارشنبه 24 مرداد 1386, 09:34 صبح
شهریار خان بی زحمت اون عکسی رو که گفتی ضمیمه کن.

MH2538
چهارشنبه 24 مرداد 1386, 10:24 صبح
سلام
دوست عزیز وقتی شما یه برنامه رو از روی یک فولدر share اجرا می کنی ، مسلماً‌error میده
یکی از دلایلش هم اینه برنامه در هر حال روی دایرکتوری که توی اون نصب هست تغییرات نامحسوسی (از نظر ما) ایجاد می کنه مثلاً Last Access Time فایل باید عوض شه (این یک مثال خیلی کوچیک بود) یک سری تراکنش هم باید روی اون دایرکتوری انجام بشه اما چون ما معمولاً Share هامون Read است و از طرفی سیستم عامل میزبان هم اجازه اعمال تغییرات از سوی کاربر بیرون از سیستم رو نمی ده این خطا پیش میاد.
شما با کپی کردن فایل ها روی سیستم محلی می تونی این موضوع رو امتحان و این مشکل رو حل کنی.

sh
چهارشنبه 24 مرداد 1386, 14:39 عصر
من برای راحتی کار میخواستم اینکار رو انجام بدم . سالها پیش که از VB 6.0 استفاده میکردم اینکار انجام شدنی بود ولی اسمبلی های دات نت براحتی در فولدر های شر شده کار نمیکنن

نتیجه گرفتم که کانکشن استرینگ رو عوض کنم و برنامه رو طب استاندارد Client -Sever بنویسم

ضمن اینکه به اصول کار آشنا هستم دوستان اگر هر نوع اطلاعاتی در مورد این نوع برنامه نویسی دارند اینجا بنویسید هم ما استفاده میکنیم هم دیگران . موارد مطرح :

1- نوع کانکشن استرینگ در مورد SQLExpress
2- نحوه مدیریت خطا در مورد دسترسی همزمان به یک رکورد
و غیره