View Full Version : نیاز به ساخت دیتابیس در سرور ASP.NET MVC Code First
mohsen.srn
دوشنبه 21 دی 1394, 19:59 عصر
با سلام
بنده مبتدی هستم.
من سایتی رو با ASP.NET MVC و بصورت Code first طراحی کردم.
حالا روی سرور آپلود شده، ولی خطای مربوط به عدم دسترسی به دیتابیس میده.
سوال من اینه که آیا وقتی ما پایگاه داده رو بصورت Code fist درست کردیم، آیا لازمه روی سرور خودمون به صورت دستی دیتابیس رو بسازیم؟ یا همه ی کارها رو خود برنامه انجام میده؟
در ویژوال استودیو که همه ی کارها از جمله ساخت connectionString رو خود برنامه انجام میداد.
خودم فکر میکنم قاعدتا باید در سمت سرور هم همین اتفاق بیافته، ولی الان برنامه با خطا مواجه هست.
اگر می بایست خودمون برای ایجاد دیتابیس کاری بکنیم، اگر میشه لطف کنید و برام توضیح بدید.
لازم به ذکره که من محتویات پوشه ی App-Data رو بر روی سرور آپلود نکردم. چون با توجه به چیزهایی که خونده بودم فکر میکردم خودش ساخته میشه.
میشه یه توضیحی در این رابطه بدید؟
با تشکر فراوان
ali_72
سه شنبه 22 دی 1394, 07:08 صبح
سلام
اول یه دیتابیس با کاربر برای پروژه خودت روی سرور بساز
کانکشن استرینگ رو تو پروژه خودت به جای لوکال با مشخصات سرور ست کن
بعد update-database بزن (همون کاری که برای ساخت دیتابیس پروزه تو لوکال مییکنی) بعدش رو سرور جدولا برات ساخنه میشه
من از وقتی code first شروع کردم حتی یه بار هم از دیتابیس لوکال استفاده نکردم
بابت خیلی از موارد راحت میشی
موفق باشی
hakim22
سه شنبه 22 دی 1394, 08:58 صبح
برای ساختن دیتابیس در SQL شما باید دسترسی لازم را در سرور داشته باشید. معمولا در هاستهای اشتراکی این دسترسی به طور مستقیم داده نمیشود بلکه به برنامه ی واسط (پنل مدیریت سایت) این دسترسی داده شده است. به همین دلیل برای ساختن دیتابیس در سرور (هاست) باید از پنل مدیریت اقدام کنید. بعد با استفاده از Code-First میتوانید دیتابیس را با دستور Update-Database در خط فرمان Package-Manager باز سازی کنید.
دقت کنید که نباید از DatabaseInitializer هایی که اجازه ی حذف دیتابیس میدهند (DropRecreate)استفاده کنید. وقتی دیتابیسی ساخته شده شما میتوانید با نام کاربری و رمز عبورتان آن را حذف کنید اما برای ساختن حتما باید از پنل مدیریت استفاده کنید. (مگر اینکه در هاست شما این امکان وجود داشته باشد)
mohsen.srn
سه شنبه 22 دی 1394, 10:30 صبح
سلام
اول یه دیتابیس با کاربر برای پروژه خودت روی سرور بساز
کانکشن استرینگ رو تو پروژه خودت به جای لوکال با مشخصات سرور ست کن
بعد update-database بزن (همون کاری که برای ساخت دیتابیس پروزه تو لوکال مییکنی) بعدش رو سرور جدولا برات ساخنه میشه
من از وقتی code first شروع کردم حتی یه بار هم از دیتابیس لوکال استفاده نکردم
بابت خیلی از موارد راحت میشی
موفق باشی
برای ساختن دیتابیس در SQL شما باید دسترسی لازم را در سرور داشته باشید. معمولا در هاستهای اشتراکی این دسترسی به طور مستقیم داده نمیشود بلکه به برنامه ی واسط (پنل مدیریت سایت) این دسترسی داده شده است. به همین دلیل برای ساختن دیتابیس در سرور (هاست) باید از پنل مدیریت اقدام کنید. بعد با استفاده از Code-First میتوانید دیتابیس را با دستور Update-Database در خط فرمان Package-Manager باز سازی کنید.
دقت کنید که نباید از DatabaseInitializer هایی که اجازه ی حذف دیتابیس میدهند (DropRecreate)استفاده کنید. وقتی دیتابیسی ساخته شده شما میتوانید با نام کاربری و رمز عبورتان آن را حذف کنید اما برای ساختن حتما باید از پنل مدیریت استفاده کنید. (مگر اینکه در هاست شما این امکان وجود داشته باشد)
متشکرم بابت راهنمایی تون.
ولی یک سوال برام پیش اومد! دستور Update-Database رو کجا باید بنویسم؟ با توجه به اینکه ظاهرا پنل مدیریت سایت قسمتی رو برای این کار نداره. Package-Manager روی ویژال استودیو هست، ولی روی سرور باید کجا این دستور رو اجرا کنم؟
کنترل پنل هاستی که من ازش استفاده میکنم از نوع WebsitePanel هستش. عکسش رو هم براتون میزارم.
138337
بازم متشکرم
saeedr22
سه شنبه 22 دی 1394, 10:36 صبح
با سلام راههترین کاری که می تونین بکنین اینه که دیتابیسی که تو لوکال درست شده رو تو سرور اتچ کنین بعد دیگه عملیات migration به درستی انجام میشه.مشکل هم از عدم دسترسی برای ساخت دیتابیس روی هاست هستش.
mohsen.srn
سه شنبه 22 دی 1394, 10:53 صبح
با سلام راههترین کاری که می تونین بکنین اینه که دیتابیسی که تو لوکال درست شده رو تو سرور اتچ کنین بعد دیگه عملیات migration به درستی انجام میشه.مشکل هم از عدم دسترسی برای ساخت دیتابیس روی هاست هستش.
سلام علیکم
مثلا اگر بخوام از این روش استفاده کنم، باید فایل های داخل پوشه App-Data رو روی سرور ببرم و بعد عملیات Attach باید با دستوری که توی ConnectionString داده میشه انجام بشه؟ میشه یه توضیحی بدید؟
بعد یه سوال خارج از موضوع دیگه اینکه در قسمت سرور connectionstring باید شماره پرتی که به دیتابیس وصل میشه رو هم بدیم یا لزومی نداره؟ مثلا اینجوری:
connectionString="server=x.x.x.x:2012;database='xxxxxx';User Id='xxxx';password='xxxxxxxxxxxx'
یا شماره پرت لازم نیست؟ چون هاست به من شماره ی پرت برای متصل شدن به دیتابیس رو هم داده.
متشکرم
saeedr22
سه شنبه 22 دی 1394, 11:57 صبح
نه نیازی نیست با استفاده از خوده امکانات هاست دیتابیس رو اتچ کنین.یا فایل بک آپ رو ریستور کنین.
در مورد پورت هم معمولا اینطور بوده که نیازی نیست ولی به تنظیمات سرور بر میگرده این.با یه آزمونو خطا اینو میتونین تست کنین.
r4hgozar
سه شنبه 22 دی 1394, 11:59 صبح
سلام.
شما که سرور نداری می خواین همونجا migration رو انجام بدی.
دسترسیتون در حد بکاپ و ریستوره.
باید دیتابیس رو بیاری رو لوکال تغیر بدی.
بعد بری دوباره اپلود کنی تو دیتابیس هاست.
hakim22
سه شنبه 22 دی 1394, 13:43 عصر
در WebSitePanel دیتابیس رو در قسمت SQL Server بسازید و بعد اطلاعات دسترسی را به صورت ConnectionString در پروژه وارد کنید. بعد وقتی update-database را در PM اجرا می کنید تغییرات رو دیتابیس هاست اعمال میشود.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.