PDA

View Full Version : سوال: خطای Invalid object name 'dbo.Visit' در هنگام آپلود سایت روی هاست



malloc
یک شنبه 17 دی 1391, 01:26 صبح
سلام دوستان.
من یه هاست از شرکتی برای خودم خریدم و شروع کردم به آپلود سایت روی اون.
اول خطای کانکشن استزینگ میداد که من یه یوزر ساختمو کانکشن استزیگمو مثل زیر بهش معرفی کردم :


<add name="NDT_DatabaseConnectionString" connectionString="Server=localhost;Database=nasimdtcNDT;User ID=****;Password=*****;"
providerName="System.Data.SqlClient" />


و مشکل حل شد اما حالا خطای invalid object name dbo.visit رو میده که یعنی جدول visit منو \یدا نمیکنه اما من دیتابیسمو restore کردم و فکر نمیکنم مشکل از نبود دیتا بیس باشه .

بنظرتون چیکار میتونم بکنم.

اگه توضیحات کمه بگید بیشتر توضیح بدم

nasr
یک شنبه 17 دی 1391, 07:11 صبح
مطمئنا این جدول وجود نداره
شما یه Select ساده بنویس از این جدول ، ببین وجود داره یا نه
می تونی با Management Studio وصل بشی به دیتابیس اونجا ببین هستش یا نه

actros
یک شنبه 17 دی 1391, 08:09 صبح
سلام دوستان.
من یه هاست از شرکتی برای خودم خریدم و شروع کردم به آپلود سایت روی اون.
اول خطای کانکشن استزینگ میداد که من یه یوزر ساختمو کانکشن استزیگمو مثل زیر بهش معرفی کردم :


<add name="NDT_DatabaseConnectionString" connectionString="Server=localhost;Database=nasimdtcNDT;User ID=****;Password=*****;"
providerName="System.Data.SqlClient" />


و مشکل حل شد اما حالا خطای invalid object name dbo.visit رو میده که یعنی جدول visit منو \یدا نمیکنه اما من دیتابیسمو restore کردم و فکر نمیکنم مشکل از نبود دیتا بیس باشه .
بنظرتون چیکار میتونم بکنم.
اگه توضیحات کمه بگید بیشتر توضیح بدم

جای localhost باید اسم سرورت رو بنویسی.فکر کنم اینم میخاد : Persist Security Info=True
اگه کنترل پنلت websitepanel باشه تو قسمت space summary الگو Connection string رو نوشته

MiladSe7en
یک شنبه 17 دی 1391, 10:23 صبح
سلام

اگر سایت شما با entity framework نوشته شده جداول entity model خودتون رو مجدد از روی دیتابیس update کنین مشکل حل میشه

malloc
یک شنبه 17 دی 1391, 10:23 صبح
اگه کنترل پنلت websitepanel باشه تو قسمت space summary الگو Connection string رو نوشته
آره دقیقا websitepanel از شرکت iranserverهست . و اونو هم پیدا کردم کردم که کانکشن استرینگ رو بصورت زیر بهم داد :


Server=31.25.89.27,2008;Database=databaseName;Uid= userName;Password=password;


و ضمنا اون کانکشن استرینگی که تعریف کردم براساس اطلاعاتی بود که سایت بهم داد مشابه عکس زیر :

97949

اینم قسمتی از یک تاپیک اعلان همین تالار



حال فقط کافیست ConnectionString برنامه خود را بر اساس نام DB و username و password تعیین شده اصلاح کنید .
در صورتی که ConectionString را در web.config ذخیره کرده اید در file manager روی web.config کلیک کنید تا بتوانید آن را ویرایش کنید .
http://chaboksoft.com/files/BNUpload/PLSK5-webconf.JPG
همان طور که در تاپیک قبل ذکر شد باید ConnectionString را به صورت زیر تعیین کنید :
1
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;



در صورتی که DB روی سرور جاری نصب شده است مقدار server را بصورت (local) وارد کنید .

اون جدول visit هم که بهش گیر میده رو من بصورت linq نوشتم اینک کدش که تو رویداد session_start هست :

Linq.NDT_TabelsDataContext visit = new Linq.NDT_TabelsDataContext();
visit.Visits.InsertOnSubmit(new Linq.Visit { IP = Request.UserHostAddress , Date = DateTime.Now.Date });
visit.SubmitChanges();
visit.Dispose();

actros
یک شنبه 17 دی 1391, 10:43 صبح
آره دقیقا websitepanel از شرکت iranserverهست . اما اینی که شما میگی و پیدا نمیکنم . میشه یجوری بگید کجاست که متوجه بشم

صفحه اول سمت چپ Spaces رو بزن تو صفجه بعد Hosting Spaces رو بزن. تو صفحه بعد سمت راست View Space Summary رو انتخاب کن.
جای localhost اطلاعات external server رو بذار ببین چی میگه

اگه از Entity Framework استفاده میکنی باید قسمت connection string اونم مقدار دهی کنی

malloc
یک شنبه 17 دی 1391, 10:59 صبح
مرسی که جواب دادید .
شما هر احتمالی که به ذهنتون میرسه رو بگید بالاخره یکیش اینو درست میکنه دیگه

نه از entity استفاده نمیکنم . از linq استفاده کردم . آخه نکته اینجاست من تو somee سایتمو آپلود کردم و بدون هیچ مشکلی فقط با تغییر کانکشن استرینگ سایت بالا اومد .الان اینجا هم احتمال زیاد باید مشکل فقط کانکشن استرینگ باشه اما دیگه نمیدونم چی بدم بهش کد زیر رو هم تست کردم نمیره :


آره دقیقا websitepanel از شرکت iranserverهست . و اونو هم پیدا کردم کردم که کانکشن استرینگ رو بصورت زیر بهم داد :
کد HTML:
Server=31.25.89.27,2008;Database=databaseName;Uid= userName;Password=password;
و ضمنا اون کانکشن استرینگی که تعریف کردم براساس اطلاعاتی بود که سایت بهم داد مشابه عکس زیر :


حالا تنها نکته ای که به ذهن خودم میرسه اینه که لا دیتابیسمو آپلود نکرده باشم . یعنی دیتابیسو تو هاست ساختم . اما دیتا بیس خودم به درستی روی اون ست نشده باشه. من برای اینکار از دکمه restore توی قسمت مدیریت دیتابیس استفاده کردم و فایل mdf و ldf خودمو در قالب یه فایل zip بهش دادم. (شاید لازمه که در قالب فایل Bak بهش بدم . یعنی منظورم اینه من از دیتابیس بکاپ نگرفتم و در قالب فایل zip دیتابیسم و restore کردم)

sh.eng
یک شنبه 17 دی 1391, 11:18 صبح
سلام دوست عزیز

ابتدا تنطیمات کانکشن استرینگ خودتون را دقیقا برابر اطلاعاتی که شرکت مربوطه بتون داده تنظیم کنید. و اگر مطمئن هستید مشکلی نداره. خب پس بیاید از اول یکی یکی قسمت های مختلفی که ممکنه باعث این مشکل شده را تست کنید.

شما گفتید که ممکنه اشکال از انتقال بانکتون بوده. خب بیاید از بانک بر روی هاست یک backup بگیرید بعد تو لوکال Restore کنید ببینید اصلا بانکتون جواب میده؟ در کل اگر بانکتون به درستی انتقال پیدا کرده پس وقتی اون را دوباره به لوکال انتقال میدید، باید درست جواب بده.

در مرحله دوم، یک صفحه بسیار ساده و یک جدول در بانک برای تست درست کنید (سایتی با یک صفحه ساده و بانکی با یک جدول برای تست)، بعد آن را آپ کنید ببینید این سایت ساده هم باز مشکل داره؟ اگر داشت پس شک نکنید از کانکشن استرینگ است. (یا اتفاقات نادری که ممکنه از طرف سرور و اشکالات آن رخ داده باشه).

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

موفق باشید.

malloc
یک شنبه 17 دی 1391, 11:37 صبح
ممنون



شما گفتید که ممکنه اشکال از انتقال بانکتون بوده. خب بیاید از بانک بر روی هاست یک backup بگیرید بعد تو لوکال Restore کنید ببینید اصلا بانکتون جواب میده؟ در کل اگر بانکتون به درستی انتقال پیدا کرده پس وقتی اون را دوباره به لوکال انتقال میدید، باید درست جواب بده.

اتفاقا بهترین ایده همینه اما نکته اینجاست که من sqlexpress دارم و فایلی که به عنوان backup به من میده پسوندش bak هست و با sqlexpress نمیشه بازش کرد و تستش کرد

sh.eng
یک شنبه 17 دی 1391, 11:53 صبح
من sqlexpress دارم و فایلی که به عنوان backup به من میده پسوندش bak هست و با sqlexpress نمیشه بازش کرد و تستش کرد

خب شما با استفاده از کدنویسی هم میتونید از امکان Restore استفاده کنید...

malloc
یک شنبه 17 دی 1391, 12:47 عصر
با کمک sh.eng مشکلم حل شد .

مشکل هم از اونجا بود که این سرور فقط فایل bak رو سا\ورت میکرد و باید از دیتابیست backup میگرفتی و بهش میدادی تا قبول کنه . اما من اولش فایلهای mdf و ldf رو واسش میفرستادم که عملا کاری نمیکرد
:تشویق::تشویق::تشویق::تشویق:: شویق::تشویق::تشویق::تشویق::ت ویق: