PDA

View Full Version : اجرای exe برنامه از روی share شبکه



Artist
چهارشنبه 21 فروردین 1387, 15:19 عصر
من یک برنامه با vb.net 2005 نوشتم و بانک اطلاعاتی هم sql server 2000 هست . برنامه رو روی سرور نصب هست و بانک اطلاعاتی هم روی همان سرور قرار داره و توی connection string هم اسم سرور تنظیم شده . حالا می خوام شاخه ای که برنامه داخل
اون نصب شده رو برای کاربران share کنم ، اما وقتی Share می کنم کاربران از داخل کامپیوتر خودشون نمی تونن اجراش کنن و Don't send می ده . تمام Permission ها هم برای everyone کامل و Full هست .
کسی هست که با این مشکل برخورد کرده باشه ، لطفاً کمکم کنید

rezaei manesh
چهارشنبه 21 فروردین 1387, 17:54 عصر
چندین مورد وجود داره که برای زبان های دات نت معمولا بی خیال می شن از این روش استفاده کنن.
مانند اینکه دات نت فریم ورک رو شما باید روی سیستم همه کاربرانت داشته باشی یا کریستال و یا بعضی از کامپوننت های دیگر رو و... جستجو هم کنی قبلا مباحثی در این زمینه هست

رضا عربلو
چهارشنبه 21 فروردین 1387, 21:20 عصر
بله من برخورد کرده ام و راه حل آن را پیدا کرده ام.
اگر بخواهم بطور خلاصه توضیح بدهم. باید بگویم که بنا به secuerity که مایکروسافت در دات نت ارائه کرده است هر برنامه تنها به منابعی که بصورت لوکال در آن کامپیوتر قرار دارد تراست می کند.
در صورتی که برنامه شما بخواهد از منابعی که در شبکه قرا دارند استفاده کنید (از قبیل اسمبلی های غیر میکروسافت)مشکل trust خواهید داشت (اسمبلی های مایکرو سافت بطور پیش فرض تراست شده اند). که این مشکل به راحتی با ابزارهای caspol و یا ایجاد یک پکیج msi و قرا دادن آن در Group policy به راحتی قابل حل است.
اگر لینک زیر را خوب مطالعه کنی متوجه قضیه می شوی و می تونی مشکلت را حل کنی:
http://www.codeproject.com/dotnet/UB_CAS_NET.asp

Artist
پنج شنبه 22 فروردین 1387, 01:48 صبح
مرسی از راهنمایی هر دو دوست عزیز ،بزارید من مشکلم رو بیشتر توضیح بدم شاید راه حل بهتری برای این کار پیدا کنیم که به درد خیلی های دیگه هم بخوره .
برنامه الان روی همه کلاینت ها با setup ساخته شده توسط VS اجرا می شه و حتی با رکورد های زیاد هم هیچ مشکلی نداره ، توی پکیج نصب crystal report ، .net framwork و Report viewer رو روی سیستمهای کلاینتها نصب می کنم ،
باید بگم که برنامه من روی همه کلاینت ها به خوبی و با سرعت بالا جواب می ده .
برای گرفتن گزارش هایی که با کریستال ساختم و یک یا دو پارامتر داره هم هیچ مشکلی ندارند را اما وقتی می خوان گزارش هایی با 10 - 11 پارامتر که بعضی ها شون توی query با like نوشته شده رو بگیرن حدود 5 تا 10 دقیقه طول می کشه و بعد پنجره Login به دیتابیس می یاد ،
اما همین گزارش ها روی سرور این مشکل رو ندارند و در 2 ثانیه انجام می شن ، همین نرم افزار به همون صورت که روی کلاینها هست روی سرور هم نصب شده .
بخاطر همین من به فکر افتادم که از share استفاده کنم که خیلی مشکلات داره ، به نظر شما من چکار کنم . از پاسختون خیلی ممنونم
اگر لازم هست سوالم رو در تاپیک جدید مطرح کنم

Artist
پنج شنبه 22 فروردین 1387, 14:20 عصر
جوابی نیست؟؟

علیرضا مداح
پنج شنبه 22 فروردین 1387, 15:37 عصر
سلام ،
با مطالعه ی مطلب زیر مشکل شما حل میشود:
My application works from my local machine, but throws a SecurityException when I move it to a network share (http://blogs.msdn.com/shawnfa/archive/2003/06/20/57023.aspx)

hack.ir
پنج شنبه 22 فروردین 1387, 17:43 عصر
برای گرفتن گزارش هایی که با کریستال ساختم و یک یا دو پارامتر داره هم هیچ مشکلی ندارند را اما وقتی می خوان گزارش هایی با 10 - 11 پارامتر که بعضی ها شون توی query با like نوشته شده رو بگیرن حدود 5 تا 10 دقیقه طول می کشه و بعد پنجره Login به دیتابیس می یاد ،علت اینه که به دلیل کندی شبکه و یا کوئری های بسیار حجیم نشست شما با سرور بعد از ده دقیقه باطل میشه درست مثل کوکی در مرورگر. با توجه به اینکه با یکی دو پارامتر مشکلی نداری و با این تکنولوژی هایی که کد شما اونارو پکونده مثل دات نت، اس کیو ال و کریستال برنامه های خیلی سنگین نوشته میشه و مشکلی پیش نمیاد به نظر می رسه مشکل در طراحی نرم افزاره و این جور مشکل ها هم به سادگی حل نمیشن.
احتمالاً یه جایی به صورت تصاعدی میزان تبادل با سرور داره زیاد میشه و روشهایی مثل روشی که به کار بردید اگر هم کمکی بکنه در حد اینه که برنامه به جای اینکه با 10 تا پارامتر به مشکل بخوره با 15 تا به مشکل می خوره.
باید ریشه ای درمان کنی. توصیه می کنم کد مشابه برای این کار رو از سایتهای معتبر گیر بیاری و از اون در برنامه استفاده کنی.