PDA

View Full Version : تحت شبکه کردن برنامه



majidrezaei2007
سه شنبه 31 مرداد 1391, 21:55 عصر
با عرض سلام خدمت اساتید و دوستان گرامی

برنامه ای نوشتم که دارای یک بانک اطلاعاتی هست . اوایل قرار به Local بودن برنامه بود . و منم از Data Base File برای بانک اطلاعاتی استفاده کردم . (sql express) اما الان ازم درخواست کردن که تحت شبکه کار کنه . منظورشونم از تحت شبکه بودن ، فقط بانکه . یعنی می خوان یک نفر دیتا بریزه تو بانک و یک نفر گزارش بگیره و یک نفر هم ببینه و ....
به عبارتی می خوان هم زمان رو یک بانک کار کنن ، یکی بریزه ، یکی بخونه
حقیقتا تا حالا با برنامه های تحت شبکه کار نکردم
الانم به فکرم زد که پوشه نرم افزار رو روی سیستم مدیر share کنم و connection string سیستم های دیگه رو بزارم روی اون . فایل رو می بینه ، موجوده ، اما موقع اتصال خطای زیر ظاهر می شه :


The file "\\WINCTRL-1VJSCH0\Users\FCBarcelona\Documents\Visual Studio 2010\Projects\project_master\project_master\projec t_master\bin\Debug\classdb.mdf" is on a network path that is not supported for database files.
An attempt to attach an auto-named database for file \\WINCTRL-1VJSCH0\Users\FCBarcelona\Documents\Visual Studio 2010\Projects\project_master\project_master\projec t_master\bin\Debug\classdb.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.


چیکار باید بکنم ؟
آیا غیر از اینکه از خود sql server استفاده کنم ، راه دیگه ای وجود داره ؟

ممنون میشم راهنماییم کنید

korosh00
سه شنبه 31 مرداد 1391, 22:20 عصر
سلام
کل پوشه مربوط به دیباگ پروژه را شیر کن بانکنت هم اگه اکسس باشه بهتره چون تو همه رایانه ها اجرا میشه اگه بانکت اس کیو ال است باید تو همه رایانه ها نسخه اس کیو ال اکسپرس را نصب کنی .
همین
اگه خیلی دیگه حرفه ای بخوای باید برنامه نویسی سوکت کار کنی که فهمیدنش ی کمی مشکله . البته فکر کنم اینطور باشه .

fjm11100
سه شنبه 31 مرداد 1391, 22:27 عصر
بابام جان راحت از یک دیتابیس مثل sql server یا postgresql یا oracle استفاده کن. کافیه جداولت را منتقل کنی که مثل آب خوردنه. اگر نه می تونی از وب سرویس استفاده کنی که اون با فایل اکسس ارتباط برقرار کنه.

اگه خیلی دیگه حرفه ای بخوای باید برنامه نویسی سوکت کار کنی که فهمیدنش ی کمی مشکله . البته فکر کنم اینطور باشه .
بی خیال آدم که فندق را با پتک نمیشکنه!!!

majidrezaei2007
سه شنبه 31 مرداد 1391, 22:34 عصر
حالا برنامه تموم شده رفته دیگه . الان می خوام تحت شبکه کنمش . اون پوشه هم share هست و از طریق سیستم مقصد بهش دسترسی هم دارم و می تونم ببینمش . رو همه ی سیستم ها هم sqlexpress نصب هست . برنامه به صورت لوکال رو اونا بدون مشکل اجرا می شه . اما موقع اتصال به بانک تحت شبکه اون خطا رخ می ده . میگه که مسیر شما یک مسیر تحت شبکه هست ، در صورتی که انتظار مسیر روی هارد رو داره .

siedmohsen
سه شنبه 31 مرداد 1391, 23:15 عصر
سلام
تا اونجایی که من میدونم باید همه connection ها را از local به نحوی تغیر بدی که تحت شبکه باشه یعنی به جای استفاده از کد زیر

Data Source=.;Initial Catalog=Project;Integrated Security=True
از کد زیر استفاده کرد

Data Source=10.10.10.2;Initial Catalog=Project;Integrated Security=True

majidrezaei2007
سه شنبه 31 مرداد 1391, 23:48 عصر
نمیشه ، کلا آدرس اگه روی شبکه باشه خطا میده

behzad1986
چهارشنبه 01 شهریور 1391, 00:16 صبح
سلام
SQL رو سیستمی که قرار سرور محسوب بشه نصب کن دیتا بیس رو Attach کن بعد tcp رو فعال کن و واسش پورت اتصال مشخص کن ، یورزر sa رو هم فعال کن بهش پسورد بده بعد Connction String مربوط به اتصال شبکه تنظیم کن
تمامی برنامه تحت شبکه به این صورت به راحتی جواب میدن

samadblaj
چهارشنبه 01 شهریور 1391, 13:03 عصر
سلام
SQL رو سیستمی که قرار سرور محسوب بشه نصب کن دیتا بیس رو Attach کن بعد tcp رو فعال کن و واسش پورت اتصال مشخص کن ، یورزر sa رو هم فعال کن بهش پسورد بده بعد Connction String مربوط به اتصال شبکه تنظیم کن
تمامی برنامه تحت شبکه به این صورت به راحتی جواب میدن

ببخشیدتوی این توضیحاتیه سوال برای من پیش اومد لطفا راهنماییم کنید.

فرضا: من یه سیستم بیشتر ندارم اگه بخوام یه برنامه تحت شبکه رو امتحان کنم آیا نیاز به دو سیستم هست راهه دیگه ای نیست؟

میشه از نرم افزارهای ویندوز مجازی یا روش بهتری هست؟
لطفا راهنماییم کنید

behzad1986
چهارشنبه 01 شهریور 1391, 13:11 عصر
سلام
نه تو Conncetion String که ست می کنید IP Server رو 127.0.0.1 مشخص می کنید ولی واسه تست کلی میشه از Vm استفاده کرد راستی باید فایر وال سیستمی که بعنوان سرور هست خاموش باشه
http://www.connectionstrings.com/sql-server-2008

samadblaj
چهارشنبه 01 شهریور 1391, 13:19 عصر
سلام
نه تو Conncetion String که ست می کنید IP Server رو 127.0.0.1 مشخص می کنید ولی واسه تست کلی میشه از Vm استفاده کرد راستی باید فایر وال سیستمی که بعنوان سرور هست خاموش باشه
http://www.connectionstrings.com/sql-server-2008

سلام ببخشید این آدرس برا من بود.
میشه بیشتر و ساده تر توضیح بدید vm چیه؟
خوب آی پی رو هم تغییر دادم تاثیرش چیه؟

sahel65
چهارشنبه 01 شهریور 1391, 13:24 عصر
سلام دوستان؛
خسته نباشید؛
راستشو بخواین من هم میخوام یه پروژه پرسنلی بنویسم که حداکثر 3 تا کامپیوتر بتونن باهاش کار کنن.
لازم به ذکر هستش که میتونم ویندوز سرور رو هم برای نصب sql بصورت مجزا نصب کنم و محدودیتی در تعداد سیستم ندارم.
امکانش هست بگید آیا این کار مشکله یا نه؟ آخه من تا حالا تحت شبکه کار نکردم و قبلا دیدم یه نفر نوشته بود کار خیلی سختی هستش، میخوام ببینم آیا سخته یا نه؟ بعنوان مثال میشه مثل NET. با یک خط ارتباط رو با بانک برقرار کرد یا نه؟
در این خصوص sample و یا آموزشی ندارید؟
ممنونم از همتون.

behzad1986
چهارشنبه 01 شهریور 1391, 13:25 عصر
vm یعنی ماشین مجازی مثل vmware یا VBox یا VPc واسه شبکه مجازی
اگه بخواین برنامه رو سیستم تست کنید یا برنامه رو خود سیستمی که بعنوان سرور هست نصب کنید باید آی پی رو 127.0.0.1 مشخص کنید این آی پی کارت شبکه سیستم هست ولی اگه تو کلاینت ها بخواین نصب کنید باید ای پی سیستم که بعنوان سرور هست انتخاب کنید در واقع برنامه تون باید جوری باشه که در اجرای اول از شما آی پی سرور بخواد بعد برای اجرای های بعدی از اون آی پی واسه اتصال به اس کیو ال استفاده کنه

samadblaj
چهارشنبه 01 شهریور 1391, 13:34 عصر
بهزاد جان ممنونم از توضیحاتت vmware روی سی شارپ هست برنامه هست باید از کجا پیداش کنم؟

کسی آموزشی برای کار با دیتابیس کلاینت سرور نداره؟

یه کتاب از آقای "قمی"هفته قبل گرفتم چنگی به دل نمیزنه خیلی روی این جور بحثها مانور نداده...

behzad1986
چهارشنبه 01 شهریور 1391, 13:42 عصر
vmware workstation برنامه ای بسیار گسترده هستش که امکانات بسیار جالبی واسه شبکه مجازی داره!! تو سایت های ایرانی لینک دانلود و کرکش هست
من در حال نوشتن تنظیمات کلاینت سروری دیتا بیس و نصب برنامه های تحت شبکه هستم کامل که شد در یک تاپیک جدا ارائه خواهم داد

samadblaj
چهارشنبه 01 شهریور 1391, 13:57 عصر
vmware workstation برنامه ای بسیار گسترده هستش که امکانات بسیار جالبی واسه شبکه مجازی داره!! تو سایت های ایرانی لینک دانلود و کرکش هست
من در حال نوشتن تنظیمات کلاینت سروری دیتا بیس و نصب برنامه های تحت شبکه هستم کامل که شد در یک تاپیک جدا ارائه خواهم داد

مرسی از راهنماییت .
چه عالی، منتظرم...
موفق باشید./

چقدر حجمش زیاده، میگم با virtual pc نرم افزار مایکروسافت" شبیه سازی ویندوز" نمیشه؟

behzad1986
چهارشنبه 01 شهریور 1391, 14:04 عصر
تو کامنت قبلی که گفتم VPc هست!!
VPc هم میشه ولی برنامه vmware workstation حرفه ای تر هستش virtual box=VBox هم هستش که مال شرکت Oracle

AmirGhasemi
چهارشنبه 01 شهریور 1391, 15:50 عصر
سلام
اگر ما را قابل بدونيد من هم نظر خودم را بدهم!
چند راه به ذهن ناتوان حقير بنده خورده كه خدمت بزرگان برنامه نويسي ايران عارضم
1) در Connection String آدرس سرور را بدهيد نبايد مشكلي پيش بياد من همه برنامه هاي ويندوزي خودم را اينطوري مي نويسم يعني اول روي سرور نصب مي كنم بعد روي كلاينت ها بطور دستي تك تك Connection String را دستي عوض مي كنم و آدرس سرور را مي دهم اگر اينطوري خطا داد مطمئن باش مشكل از فايروال و شبكه است نه برنامه
2) راه دوم اينه كه من برنامه را روي سرور نصب مي كنم ولي روي كلاينتها نثب نمي كنم بلكه از روي كلاينت دسترسي به فولدر شير شده سرور پيدا مي كنم و از ان يك شورت كات مي سازم و آن را اجرا مي كنم بدين صورت اصلا نيازي به تغيير Connection String ندارم
3) در مورد اون مطلبي كه دوستان گفتن كه از Vm استفاده بشه! داداش ها و خواهرهاي گل من! بابا راه را اشتباه نريد! شما مي خواهيد مگه آپولو هوا كنيد!؟؟؟ ماشين هاي مجازي مثل Vmware كه براي برنامه نويسي تحت شبكه نيست! شما واسه تست نرم افزار تحت شبكه هم اصلا به vm نياز نداريد! بنده خداها را مي فرستيد قاطي باقالي ها اگه بخوان برن يك كتاب 300 صفحه اي vm بخونن! آخرش هم هيچي به هيچي

majidrezaei2007
چهارشنبه 01 شهریور 1391, 23:52 عصر
امروز بعد از کلی دردسر بالاخره فهمیدم که چطوری باید این کار رو کرد
اول از همه باید یک سیستم رو به عنوان سرور در نظر گرفت که بانک روی سرور اون attach بشه . همه هم میتونن سرور باشن ، به شرطی که این تنظیمات رو همشون اعمال بشه.
باید سرویس های sqlexpress و sql server browser رو فعال کرد . پروتکل های شبکه رو هم برای sql express از توی Sql server manager configuration فعال کرد
سپس اس کیو ال در حالت mixed mode قرار بگیره و یوزر sa رو هم فعال و بهش پسورد داد . نهایتا هم بانک attach بشه
همه این عملیات غیر از فعال کردن سرویس ها با کد امکان پذیره . حالا یا تو خود sql server (اگه نصب بود) یا تو خود سی شارپ با یک command . به این شکل خط به خط اجرا می کنیم ، یکی به یکی:

USE [master]

EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2

alter login [sa] with password=N'123'

alter login [sa] enable

CREATE DATABASE [mydb] ON
( FILENAME = N'mdf file path' ),
( FILENAME = N'ldf file path' )
FOR ATTACH

حالا فرض می کنیم که آدرس IP سرور هم باشه 192.168.1.1 و اسم بانک هم mydb
سیستم های دیگه با این connection string بهش متصل میشن :

string cn_s = @"Data Source=192.168.1.1\\SQLEXPRESS;Initial Catalog=mydb;User ID=sa;password=123";

خودش هم با این

string cn_s = @"Data Source=.\\SQLEXPRESS;Initial Catalog=mydb;User ID=sa;password=123";


تمام ، من تست کردم و 100% جواب گرفتم . دقیقا مثل خود sql server عمل می کنه و امکان انجام تغییرات همزمان هم موجوده

امیدوارم مفید باشه

samadblaj
پنج شنبه 02 شهریور 1391, 01:35 صبح
3) در مورد اون مطلبي كه دوستان گفتن كه از Vm استفاده بشه! داداش ها و خواهرهاي
گل من! بابا راه را اشتباه نريد! شما مي خواهيد مگه آپولو هوا كنيد!؟؟؟ ماشين هاي
مجازي مثل Vmware كه براي برنامه نويسي تحت شبكه نيست! شما واسه تست نرم افزار تحت
شبكه هم اصلا به vm نياز نداريد! بنده خداها را مي فرستيد قاطي باقالي ها اگه بخوان
برن يك كتاب 300 صفحه اي vm بخونن! آخرش هم هيچي به
هيچي


خوب میشه لطف کنید روش درست رو بفرمایید بهتر هست چجور روی یه سیستم این عملیات سرور کلاینت رو شبیه سازی کنم؟

nima.sh
پنج شنبه 02 شهریور 1391, 07:24 صبح
لطفا بیشتر توضیح بدید....
اگه چند تا سرور وجود داشت،چطور میشه...؟

behzad1986
پنج شنبه 02 شهریور 1391, 09:03 صبح
سلام
اگر ما را قابل بدونيد من هم نظر خودم را بدهم!
چند راه به ذهن ناتوان حقير بنده خورده كه خدمت بزرگان برنامه نويسي ايران عارضم
1) در Connection String آدرس سرور را بدهيد نبايد مشكلي پيش بياد من همه برنامه هاي ويندوزي خودم را اينطوري مي نويسم يعني اول روي سرور نصب مي كنم بعد روي كلاينت ها بطور دستي تك تك Connection String را دستي عوض مي كنم و آدرس سرور را مي دهم اگر اينطوري خطا داد مطمئن باش مشكل از فايروال و شبكه است نه برنامه
2) راه دوم اينه كه من برنامه را روي سرور نصب مي كنم ولي روي كلاينتها نثب نمي كنم بلكه از روي كلاينت دسترسي به فولدر شير شده سرور پيدا مي كنم و از ان يك شورت كات مي سازم و آن را اجرا مي كنم بدين صورت اصلا نيازي به تغيير Connection String ندارم
3) در مورد اون مطلبي كه دوستان گفتن كه از Vm استفاده بشه! داداش ها و خواهرهاي گل من! بابا راه را اشتباه نريد! شما مي خواهيد مگه آپولو هوا كنيد!؟؟؟ ماشين هاي مجازي مثل Vmware كه براي برنامه نويسي تحت شبكه نيست! شما واسه تست نرم افزار تحت شبكه هم اصلا به vm نياز نداريد! بنده خداها را مي فرستيد قاطي باقالي ها اگه بخوان برن يك كتاب 300 صفحه اي vm بخونن! آخرش هم هيچي به هيچي
دوست عزیز
کار با Vm بسیار ساده هستش و واسه تست برنامه ها بر روی سیستم عامل های مختلف بسیار کاربرد داره و نیاز به خوندن هیچ کتابی نداره !! اگر بخواین برنامه رو تو شبکه یا تو چندین سیستم عامل مختلف تو شرایط مختلف تست کنید بهترین راه و ساده ترین راهه!
لطفا برید تحقیق کنید!

nima.sh
پنج شنبه 02 شهریور 1391, 10:39 صبح
آموزش تنظیمات: http://http://barnamenevis.org/showthread.php?357688-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AA%D9%86%D8%B8%DB%8C%D9%85%D8%A7%D8%AA-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AA%D8%AD%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87
متاسفانه سایت فیلتره.....

behzad1986
پنج شنبه 02 شهریور 1391, 10:52 صبح
نه دوست عزیز حذف شده
از این لینک استفاده کنید
http://barnamenevis.org/showthread.php?297738-%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-IP-Address&p=1306211&viewfull=1#post1306211