ورود

View Full Version : سوال: آپلود سایت asp.net 4.6 روی سرور



Shahriyar716
جمعه 30 بهمن 1394, 08:57 صبح
با سلام و خسته نباشید
من یه پروژه گرفتم و حالا که میخوام آپلودش کنم به یه مشکل اساسی برخورد کردم و الان حدودا یک هفته از تاریخ تحویلش گذشته. اگه امکان داره یک نفر هر چه سریعتر کمک کنه ممنون میشم.
این پروژه asp mvc 4.6 و sql server 2014 و با entity framework 6 هست.

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

مراحل کاری رو هم که من انحام میدم اینه: سایت رو publish میکنم به صورت file system. بعد اون خط از کانکشن استرینگ در فایل web.config رو با این خط کد عوض می کنم:
<add name="DefaultConnection" connectionString="Data Source=.;Initial Catalog=myDbName;User ID=userNameThatCanUseThatDatabase;Password=passwor dForUser;" providerName="System.Data.SqlClient" />

بعد فایل هایی که تولید شده رو روی سرور آپلود کردم.

اینم بگم که برای بانک اطلاعاتی که روی سرور ساختم هیچ جدولی درست نکردم چون خود برنامه این کار رو انجام میده.

hakim22
جمعه 30 بهمن 1394, 12:31 عصر
شما می توانید با استفاده از آدرس سرور و نام کاربری و رمز ورود به دیتابیس وصل بشید . مطمئن بشید که جدولها ساخته شده.

برای اینکه جدولهای اتوماتیک ساخته بشه باید یک DatabaseInitializer داشته باشید. پیشنهاد من اینکه از این روش استفاده نکنید.
چون این کلاس میاد و دیتابیس رو از سرور پاک میکنه و میخواد یکی جدید ایجاد کنه و بعد جدول هارو میسازه. این قضیه روی سیستم محلی مشکلی نداره چون شما دسترسی های لازم رو دارید.
ولی در سرور سایت ها معمولا شما دسترسی مستقیم به دیتابیس ندارید و از طریق پنل مدیریت باید دیتابیس ساخته بشه .
مشکل اینه که Code First میتونه دیتابیس رو پاک کنه ولی نمیتونه یکی دیگه بسازه. (البته بر میگرده به تنظیمات سرور)

شما همیشه از Migration و اون هم روش دستیش استفاده کنید. از AutoMigration و Initializer استفاده نکنید.

یک روش برای آپلود دیتابیس اینه که با استفاده از Migration در Package Manager اسکریپت دیتابیس و تغییراتی که قرار در دیتابیس اعمال بشه رو بسازید و روی دیتابیس از طریق پنل اجرا کنید.
همینطور شما می توانید در سیستم خودتون وقتی کار میکنید ConnectionString رو روی دیتابیس سرور تنظیم کنید و کلا روی دیتابیس سرور تغییرات رو اعمال کنید.