PDA

View Full Version : مبتدی: خطا در اتصال به بانک از سیستم کلاینت - خطای A network-related or instance-specific error occurred



sayan
شنبه 30 مرداد 1389, 11:40 صبح
سلام دوستان عزیز
من تو پروژه ام برای Connectionstring قسمت server نوشتم


data source="192.168.6.1,1433;Initial Catalog=printery;Integrated Security=True;";

حالا این برنامه امو بردم روی یک سیستم دیگه (یک ماشین مجازی تو سیستم خودم)
وقتی که میخواد به سیستم اولی که Ip اون تو بخش Server بالا گفتم کانکت بشه پیغام زیر رو میده برای رفع این مشکل چه پیشنهادی میکنید؟


"A network-related or instance-specific error occurred while establishing a connection to SQL Server.
The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is
configured to allow remote connections.
(provider: TCP Provider, error: 0 - A connection attempt failed because the connected party did not
properly respond after a period of time, or established connection failed because connected host has failed to
respond.)"

البته اون بخش configured to allow remote connections رو تو Sql Server نگاه کردم تیک خورده بود و مقدار ۶۰۰ داشت
اینترنت هم گشتم ولی نتونستم بفهم مشکل من کجاست و کجا رو باید تنظیم کنم
سرور یا کلاینت؟
با تشکر

amirh_karimifar
شنبه 30 مرداد 1389, 11:51 صبح
اسم instace روی ماشین کلاینت رو وارو نکردی . اینو امتحان کن .

data source="192.168.6.1\sqlexpress;Initial Catalog=printery;Integrated Security=True;";

sayan
شنبه 30 مرداد 1389, 12:03 عصر
سلام
من به جای SqlExpress شماره پورت رو دادم.
کانکشنم تو سیستم خودم درست کار میکنه ولی از کلاینت دیگه نه
در ضمن Sql Server من Enterprise هستش

علیرضا حسن زاده
شنبه 30 مرداد 1389, 12:31 عصر
دوست عزیز ربطی به نام Instance نداره
Connectionstring رو اگه به صورتی که بالا نوشتی برای Server بخوای داشته باشی و مشکل دیگه ای وجود نداشته باشه کار میکنه ولی برای کلاینت کار نمیکنه علتش هم اینه که شما از SQL می خوای که با یوزر و پسورد ویندوز شمارو شناسایی کنه که متاسفانه یوزرو پسورد کلاینت شما تو سرور وجود نداره و Login انجام نمیشه (این مشکلی هست که بعدا باهاش برخورد می کنید و باید برای حلش تو SQL یه Login برای ورود به دیتابیس تعریف کنی)
در مورد پیام خطایی که نوشتین دوتا مورد میتونه اتفاق افتاده باشه:
1- TCP/IP تو سرور SQL غیر فعال هست (پیش فرضه SQLExpress)
2-اگه مورد 1 درسته آدرس IP سرور رو Ping کن اگه جواب داد مشکل فایروال سرور هست موقتا خاموشش کن دوباره تست کن اگه جواب داد برنامه sqlserv.exe و پورت 1433 رو تو فایروال معرفی کن که Block نشه

به تصویر توجه کن که IP ها فعال شدن IP اول IP سرور هست

sayan
شنبه 30 مرداد 1389, 13:46 عصر
سلام من ایراد خطای برنامه ام رو گرفتم اول رفتم
به این لینک (http://support.microsoft.com/default.aspx?scid=kb;EN-US;914277) و قسمتی از کار رو درست کردم بعد توی Sql Server Configuration Manager هم قسمت Protocol For MsSqlServer رو هم دستکاری کردم و در آخر هم تو قسمت Login
Sql Server اون کاربر سیستم کلاینت (مثلاGuest) رو به بانکم دسترسی دادم درست شد:لبخندساده:
-------------------
پس هر وقت ما برای مشتری برنامه می نویسیم باید این تنظیمات رو هم بهش بگیم که تو سرورش تنظیم کنه
به نظر شما راه حلی وجود نداره که از طریق کد این عملیات رو انجام بدیم
با تشکر

علیرضا حسن زاده
یک شنبه 31 مرداد 1389, 13:00 عصر
میشه اسنها رو به صورت اتوماتیک هم انجام داد
1- دستورات تنظیم SQL رو در یک فایل SQL بنویسید و در اولین اجرا اون رو در سیستم کلاینت اجرا کنید
2- اغلب از تنظیمات رو میشه در هنگام نصب SQL به عنوان پارامتر به برنامه نصب داد که اونها رو اعمال کنه

sayan
سه شنبه 02 شهریور 1389, 05:23 صبح
سلام دوست عزیز
من دستورات تنظیم sql رو بلد نیستم امکانش هست یک مثال بزنید یا لینکی راهنمایی کنید