0 امتیاز

درود

توضیح: بانک من در sql server 2014 می باشد

  1. دسترسی و شناسایی و استفاده از یوزر برای بانک را تنظیم کرده ام که بوسیله sql server یوزر وارد شود و بتواند از راه دور هم دسترسی بگیرد
  2. در تنظیمات، برای TCP هم enable کرده ام و پورت مورد نظر را 1433 وارد کرده ام
  3. در فایروال دسترسی به پورت را باز کرده ام و دسترسی به sql server را نیز فعال ساخته ام

حالا وقتی از داخل Visual C#  که روی یکی از سیستمهای درون شبکه در حال اجرا است به سرور اتصال می دهم و اتصال می سازم سرور شناسایی می شود و اطلاعات جداول را می توانم ببینم و بخوانم،

ولی وقتی بوسیله برنامه نوشته شده رشته اتصال را بر اساس IP و پورت سرور تنظیم می کنم (همانند رشته اتصال زیر ؛

conect = new SqlConnection(@"Data Source=" + address + ";Initial Catalog=mebank;" + "Integrated Security=True;User ID=myUser;Password=mypassword;");

  • connect یک مقدار رشته ای است برای استفاده در طول برنامه!
  • بجای address ، مقدار IP و پورت قرار می گیرد (مثلا 172.31.85.30,1433)

این IP را می توان در برنامه وارد کرد تا برنامه بتواند از آن استفاده کند.

حالا وقتی برنامه اجرا می کنم و می خواهم به اطلاعات دسترسی داشته باشم خطای زیر داده می شود!!!

System.Data.SqlClient.SqlException (0x80131904): 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 - The remote computer refused the network connection.) ---> System.ComponentModel.Win32Exception (0x80004005): The remote computer refused the network connection

بسیار سپاسگزار می شوم راهنمایی بفرمایید چطور از این مخمصه رها شوم؛

ایا رشته اتصالم مشکلی دارد و چیزی کم دارد؟ یا مشکل از چیز دیگری است 

 

1 پاسخ

+1 امتیاز

سلام دوست عزیز

در اینجا چند دلیل برای این خطا وجود دارد. برای رفع این خطا باید دستور زیر را دنبال کنید.

سعی کنید سرور sql را از ویژوال از استودیو مدیریت وصل کنید. اگر از طریق احراز هویت ویندوز برای اتصال سرور sql استفاده می کنید، هویت sa یا یوزر برنامه خود را در لاگین تنظیم کنید

در  احراز هویت سرور sql ویا رشته ارتباط در web.config برنامه وب خود را چک کنید و شناسه کاربری و رمز عبور sql server رادر اونجا چک کنید 

اگر پایگاه داده خود را در سرور دیگر (دسترسی به پایگاه داده از راه دور) کپی کردید  ابتدا از  دسترسی از سرور sql را از سرور sql server از SQL Server مدیریت استودیو tcp-ip  رو چک کنید

یادتون باشه اتصال در اینترنت به دیتابیس با شبکه متفاوته شما اگه از ایپی عمومی استفاده میکنید یکبار تو محیط لوکال یعنی با همون 192.168.1.1 تست کنید

 dns ها نیز باید بررسی بشه

اگر از Amazon RDS یا SQL Azure استفاده می کنید، باید پورت را از گروه امنیتی آن نمونه فعال کنید.

اگر به سرور sql server دسترسی پیدا کردید از طریق روش اعتبارسنجی sql server مطمئن شوید که "SQL Server و Windows Authentication Mode" sql server instance property را فعال کرده اید. 

در ورژن های جدید sql امکان بلاک ای پی افزوده شده این موضوع تو یکی از ساتیهای امنیتی مطرح شده بود به این نکته هم توجه داشته باشید

 

اینم تست کنید

در منوی Start روی Run کلیک کنید. در Run پنجره type cmd، سپس OK را بزنید.
در پنجره خط فرمان، نوع پینگ و سپس آدرس IP کامپیوتر را که SQL Server را اجرا می کند، تایپ کنید. برای مثال، پینگ 192.168.1.101 با استفاده از یک آدرس IPv4 یا ping fe80 :: d51d: 5ab5: 6f09: 8f48٪ 11 با استفاده از آدرس IPv6. (بعد از پینگ با آدرس های IP کامپیوتر خود که قبل از آن جمع کرده اید باید اعداد را جایگزین کنید.)
اگر شبکه شما به درستی پیکربندی شده باشد، شما پاسخی از قبیل پاسخ از <آدرس IP> و سپس بعضی از اطلاعات اضافی دریافت خواهید کرد. اگر یک خطا مانند میزبان مقصد را غیر قابل دسترسی دریافت کنید، یا درخواست به پایان رسیده است سپس TCP / IP به درستی پیکربندی نشده است. (بررسی کنید که آدرس IP صحیح بوده و به درستی تایپ شده بود.) خطاها در این نقطه می تواند مشکل را با کامپیوتر مشتری، سرور سرور یا چیزی در مورد شبکه مانند روتر نشان دهد.

 

درود فراوان و سپاس از توجهتون

برنامه من در یک شبکه محلی باید اجرا بشه

آی پی سیستمی که SQL Server روی ان نصب هستش

172.31.85.30

بوده و در تنظیمات گزینه TCP را فعال کرده ام و پورت 1433  را هم تنظیم کرده ام؛

حتی فایروال را هم قطع کرده ام (علی الرغم اینکه پورت را به ان معرفی کرده بودم)

در SQL Server یوزر و پسور ساخته ام و دسترسی ها را برابر آموزش های گفته شده ایجاد و برای بانک دسترسی ها را تنظیم کرده ام...

حالا هر کاری می کنم از یک سیستم دیگه توی شبکه برنامه اجرا بشه و به بانک دسترسی پیدا کنه... این خطا را می دهد.
توسط (101 امتیاز) 2 1 نشانه گذاری شده
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,919 کاربر

دسته بندی ها

...