ورود

View Full Version : سوال: مشکل با اجراي برنامه از رويIIS ؟



Modifier
یک شنبه 23 خرداد 1389, 11:04 صبح
سلام

من از vs2008و sql2005 استفاده ميکنم..
يک webapp ساختم ...

با استفاده از خوده vs هيچ مشکلي ندارم ولي ..

وقتي از روي IIS يک virtual directory ميسازم يا برنامه رو توي wwwroot کپي ميکنم ... به ديتابيس وصل نميشه..!!!!:افسرده:

بايد چيکارکنم ؟

Modifier
یک شنبه 23 خرداد 1389, 13:30 عصر
در تکمیل سوال بالا ..

روی سیستم خودم یه new website درست کردم و location اون رو http و روی localhost قرار دادم و از طریق خود VS یه virtual direvtory ساختم ... و web site جدید رو از طریق vitual dir به برنامم متصل کردم ..
و تونستم روی سیستم خودم از روی IIS پروژه رو اجرا کنم .. به DB متصل بشم..

ولی مشکل اینجاست ... که روی یه سیستم دیگه که VS نصب نیست ولی dot net 3.5 نصبه ...
صفحاتم به db وصل نمیشه .. یعنی وقتی از طریق خود IIS یه virtual dir میسازم بهم جواب نمیده ...(روی سیستم خودم هم در ابتدا این کار رو میکردم)
چرا ؟

فقط به این نتیجه رسیدم که از طریق VS این کار رو کردم مطمئناً یه تنظیماتی روانجام داده که برنامه درست اجرا شد..
یا اینکه باید یه permission ی رو به پوشه برنامم بدم یا ...

چی کارکنم ؟ کمکم کنید ...

hamid67fathi
یک شنبه 23 خرداد 1389, 15:17 عصر
سلام
بانکت همراه پروژه هست ؟
Connection String رو بفرست ببينم .

Modifier
یک شنبه 23 خرداد 1389, 16:11 عصر
سلام
بانکت همراه پروژه هست ؟
Connection String رو بفرست ببينم .

بله بانک رو attach کردم ...




server=***;Initial Catalog=DB_;Integrated Security=True;Trusted_Connection=true;User ID=sa;Password=;




server=***;Initial Catalog=DB_;User ID=;Password=;Trusted_Connection=true;


فکر نکنم کاری به connectionstring داشته باشه ... هرچی هست ربط داره به vs2008 یا بهتر بگم به dotnet 3.5...

مشکل اجرا از روی IIS هست روی سیستمی که vs نصب نیست ...

mehdi.mousavi
یک شنبه 23 خرداد 1389, 16:34 عصر
سلام.
شما فرمودید که به بانک وصل نمیشه... میشه لطف کنید دقیقا خطایی رو که در این رابطه میگیرید (که از روی اون متوجه شدید ارتباط با DB برقرار نمیشه) رو اینجا قرار بدید تا سریعتر به جواب برسیم؟

موفق باشید.

Modifier
یک شنبه 23 خرداد 1389, 17:10 عصر
سلام.
شما فرمودید که به بانک وصل نمیشه... میشه لطف کنید دقیقا خطایی رو که در این رابطه میگیرید (که از روی اون متوجه شدید ارتباط با DB برقرار نمیشه) رو اینجا قرار بدید تا سریعتر به جواب برسیم؟

موفق باشید.

تشکر از لطفتون که پیگیر هستید ..

خیلی خطای ساده ای هست ...

من درهنگام لود شدن صفحه اصلی یه تابع دارم که dropdown ها رو مقدار دهی اولیه میکنه و مقادیر هم از db میگیرم ...



DropDown_Obj.DataSource = DS_DropDown_Items;
DropDown_Obj.DataValueField = DS_DropDown_Items.Tables[0].Columns[0].ColumnName;
DropDown_Obj.DataTextField = DS_DropDown_Items.Tables[0].Columns[1].ColumnName;
DropDown_Obj.DataBind();


وقتی به index های مشخص شده میرسه ... مسلمه که وقتی به db متصل نشده خطای وجود نداشتن index رو میده...



Object reference not set to an instance of an object.


البته من جلوی نمایش خطا ها رو گرفتم و در اصل در dropdown ها چیزی load نمیشه ...

به همین سادگی ...

روی سیستم خودم هم از vs و هم از IIS که توضیحش رو دادم مشکلی ندارم ولی میخوام روی یه سیستم دیگه نصب کنم که اینطور شده ...

sql2005 و دات نت 3.5 رو نصب کردم ..

در ضمن نام سرور Sql روی سیستمی که میخوام نصب کنم ... Instance داره ..


server\instance


من فکر میکنم دات نت 3.5 باید روی IIS یه تنظیمی رو بکنه تا بشه ...

همون طوری که روی سیستم خودم ابتدا نشد ولی وقتی با vs یه virtual dir ساختم شد...



در ضمن ورژن IIS من 5.1 هست ..

mehdi.mousavi
یک شنبه 23 خرداد 1389, 17:48 عصر
تشکر از لطفتون که پیگیر هستید .. خیلی خطای ساده ای هست ... من درهنگام لود شدن صفحه اصلی یه تابع دارم که dropdown ها رو مقدار دهی اولیه میکنه و مقادیر هم از db میگیرم ...



DropDown_Obj.DataSource = DS_DropDown_Items;
DropDown_Obj.DataValueField = DS_DropDown_Items.Tables[0].Columns[0].ColumnName;
DropDown_Obj.DataTextField = DS_DropDown_Items.Tables[0].Columns[1].ColumnName;
DropDown_Obj.DataBind();
وقتی به index های مشخص شده میرسه ... مسلمه که وقتی به db متصل نشده خطای وجود نداشتن index رو میده...



Object reference not set to an instance of an object.
البته من جلوی نمایش خطا ها رو گرفتم و در اصل در dropdown ها چیزی load نمیشه ...

به همین سادگی ...

سلام.
این خطا در کدوم خط دقیقا رخ میده؟ چون پیامی که شما گذاشتید یعنی object مورد نظر null هستش و شما میخواهید روی چنین reference ای، به یک Property یا متود اون object دست پیدا کنید و خوب، طبیعی هستش که چنین اتفاقی رخ بده.

ابتدا به من بگید که آیا DS_DropDown_Items مقدار داره، یا null هستش که اگر null باشه، باید چند خط بالاتر از کدی که اینجا گذاشته اید رو بررسی کنید تا ببینیم چرا null هستش. این طور کد نوشتن، اصلا صحیح نیستش. شما اصلا نباید در مرحله اول در صورت null بودن DS_DropDown_Items، اجازه بدید که اجرا به این Assignment برسه...

سوالی رو که کردم لطفا پاسخ بدید تا با هم ایراد رو پیدا و رفع کنیم.

موفق باشید.

Modifier
یک شنبه 23 خرداد 1389, 18:21 عصر
سلام.
این خطا در کدوم خط دقیقا رخ میده؟ چون پیامی که شما گذاشتید یعنی object مورد نظر null هستش و شما میخواهید روی چنین reference ای، به یک Property یا متود اون object دست پیدا کنید و خوب، طبیعی هستش که چنین اتفاقی رخ بده.



دقیقا روی خط دوم ...

مطمئن باشید که به db دسترسی نداره...
با یه خطای دیگه براتون توضیح میدم..

من از کنترل لاگین استفاده کردم وقتی میخوام لاگین کنم :

خطای زیر رو میده ...

System.Data.SqlClient.SqlException: Cannot open database "DB_" requested by the login. The login failed.
Login failed for user '[ComputerName]\ASPNET'.



ابتدا به من بگید که آیا DS_DropDown_Items مقدار داره، یا null هستش که اگر null باشه، باید چند خط بالاتر از کدی که اینجا گذاشته اید رو بررسی کنید تا ببینیم چرا null هستش. این طور کد نوشتن، اصلا صحیح نیستش. شما اصلا نباید در مرحله اول در صورت null بودن DS_DropDown_Items، اجازه بدید که اجرا به این Assignment برسه...


دوست عزیز روی سیستم مورد نظر vs نصب نیست که بتونم راحت debug کنم ...

و اینکه چه با if کنترل کنم چه با try...catch در هر حال مهم اینه که رخ دادن خطا رو کنترل کنیم که به کاربر نمایش داده نشه ...

با توجه به خطایی که گفتم نظرتون چیه ؟

Modifier
دوشنبه 24 خرداد 1389, 10:18 صبح
مشکلم حل شد ..

خطا از aspnet user بود که اجازه دسترسی به db رو نداشت ...
ولی بازم مشکل دارم ...

از روی iis چه از سیستم خودم و چه از سیستم دیگری که اجرا میکنم نمیتونم login کنم ... و بعضی صفحات هم
Server Error in '/' Application.
میده ...
...

دیگه کچل شدم ..چیکار کنم ؟

Modifier
دوشنبه 24 خرداد 1389, 10:35 صبح
از روی IIS که اجرا میکنم بعضی صفحات این خطا رو میده :



Server Error in '/' Application.

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

Requested URL: /MembershipRegisterUI.aspx


Version Information: Microsoft .NET Framework Version:2.0.50727.3082; ASP.NET Version:2.0.50727.3082


و اینکه به table های مربوط به aspnet نمیتونه دسترسی داشته باشه ...

Modifier
دوشنبه 24 خرداد 1389, 10:43 صبح
با ASP.NET Development Server که اجرا میکنم هیچ مشکلی نداره ...

mehdi.mousavi
دوشنبه 24 خرداد 1389, 11:42 صبح
دقیقا روی خط دوم ... مطمئن باشید که به db دسترسی نداره...
با یه خطای دیگه براتون توضیح میدم.. من از کنترل لاگین استفاده کردم وقتی میخوام لاگین کنم :


سلام.
من نمیگم شما درست نمیگید، بنابراین اینقدر در عدم ارتباط بین App و DB پافشاری نکنید.
لطفا Connection String خودتون رو به این تغییر بدید، و مجددا سعی کنید Login کنید و بهم بگید آیا بازهم همون پیام رو دریافت میکنید یا خیر.


Database=DBNAME;Server=computerName\instanceName;U ser ID=whatever;Password=whatever;اگر مجددا همون پیام رو با CnnStr فوق دریافت کنید، نشون میده که Login ID مورد نظر در SQL Server تعریف نشده. لطفا آزمایش کنید و نتیجه رو "با آرامش" اعلام کنید. :لبخندساده: دقت کنید. Trusted Connection و Integrated Security در CnnStr فوق وجود نداره!

موفق باشید.

پاورقی: ضمنا، با فونت استاندارد هم بنویسید میتونم بخونم.