PDA

View Full Version : مبتدی: صفحه همه ارور ها یه صفحه ای باشه که خودم طراحی کنم



monire.6767
چهارشنبه 22 آذر 1391, 13:21 عصر
سلام من میخوام همه ارور هایی که تو سایتم ممکنه بوجود بیاد تو یه صفحه باشه و کاربر نفهمه ارور چیه یه صفحه که خودم یه متن ساده توش بنویسم

M.D.A_M.D.A
چهارشنبه 22 آذر 1391, 13:25 عصر
<configuration>
<system.web>
<customErrors mode="On" defaultRedirect="apperror.aspx">
<error statusCode="404" redirect="404.aspx" />
<error statusCode="500" redirect="500.aspx" />
</customErrors>
</system.web>
</configuration>

kahrobaa
چهارشنبه 06 دی 1391, 12:19 عصر
سلام
باید یک صفحه با پسوند . add , html
کنی و متن ساده را داخلش بنویسی بعدم باید یک فایل global اضافه کنی(مثل اضافه کردن یک صفحه جدید) و در قسمت application-error کد بنویسی و موقع خطا به صفحه .html هدایت بشه

neda555
چهارشنبه 06 دی 1391, 12:32 عصر
این کد را در قسمت application error فایل global بنویس و موقع خطا بفرستش مثلا به صفحه error.aspx

string ErrorMessage = "Application Error ... \n\n";
//Path And Name Of The Page
ErrorMessage += "Page : " + Request.Path;
//Url Query String
ErrorMessage += "\n\nQuery String : " + Request.RawUrl;
//Last Error Exception Object & Error Message
Exception myex = Server.GetLastError();
ErrorMessage += "\n\nError Message : " + myex.Message.ToString();
//Source Of The Error Message
ErrorMessage += "\n\nError Source : " + myex.Source;
//Stack Trace Of The Error
ErrorMessage += "\n\nError Stack Trace : " + myex.StackTrace;
//Method Where The Error Occurred
ErrorMessage += "\n\nError Target Site : " + myex.TargetSite;
//Date Time
ErrorMessage += "\n\nDateTime : " + DateTime.Now.ToString();
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["ConnectionString1"].ConnectionString;
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("StoredProcedureAddLogError", con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ContentError", ErrorMessage);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Response.Redirect("~/Error.aspx");

AmirGhasemi
چهارشنبه 06 دی 1391, 14:09 عصر
سلام
خيلي كار سختي نيست هر چند روش هاي مختلفي دارد اما استفاده از روش web.config بدون استفاده از Global‌راحت ترين و حتي ميشه گفت بهترين روشه اما اگر مي خواهي كارهاي عجيب و غريب انجام بدهي ناچاري كه از Global استفاده كني!
شما ابتدا يك فولدر به نام Errors درست كن و يك فايل aspx آنجا درست كن و پيامي كه مي خواهي بنويسي را در ان بگذار
بعد در web.config اين قطعه كد را داخل <system.web> بگذار


<customErrors mode="On" defaultRedirect="~/Errors/GeneralError.aspx">
<error statusCode="403" redirect="~/Errors/Error403.aspx"/>
<error statusCode="404" redirect ="~/Errors/Error404.aspx"/>
<error statusCode ="500" redirect ="~/Errors/Error500.aspx"/>
</customErrors>



نكته مهم در mode است كه خودش سه حالت دارد
1- on كه خب خاصيت مديريت خطاها را فعال مي كند
2- off كه معلومه براي غيرفعال كردن مديريت خطاهاست
3- RemoteOnly كه ان هم خاصيت مديريت خطاها را فعال مي كند اما فقط براي افرادي كه خارج از سرور اصلي هستند يعني شماي برنامه نويس بايد براي خودت خاصيت on را بگذاري اما زماني كه پروژه ات را روي هاست آپلود كردي اين modeرا به RemoteOnly تغيير بدهي

معمولا 4 تا صفحه براي مديريت خطاهات بايد داشته باشي
1- GenetalError كه براي مديريت تامم خطاهاته
2- Error 403 ;كه براي مديريت خطاي سرور است
3- Error 404 كه براي مديريت خطاي عدم وجود صفحه است
4- Error500 كه براي مديريت خطاي ممنوعيت دسترسي است

monire.6767
چهارشنبه 06 دی 1391, 15:04 عصر
ممنون ازهمه

neda555
پنج شنبه 19 تیر 1393, 16:42 عصر
سلام
من ازوب کانفیگ دارم استفاده میکنم واسه ارور 404
چرا وقتی یه آدرس رو با پسوند بزنم مثلا aaa.aspx میره به صفحه ارور خودم ولی اگر بعد از آدرس سایت مثلا زدم aaa میره به صفحه استاندارد پیش فرض ارور 404!

neda555
شنبه 21 تیر 1393, 13:00 عصر
کسی نمیدونه!

ahmad156
شنبه 21 تیر 1393, 21:57 عصر
من به این مشکل برنخوردم ولی اگر هم اینجوری باشه احتمالاً به خاطر این هست که اون پسوند رو به عنوان یه Handler نمیشناسه و خطایی که میده از طرف IIS هست پس باید تنظیمات IIS رو توی web.config لحاظ کنین.

<system.webServer>
<httpErrors>
yourSetting
</httpErrors>
</system.webServer>

neda555
دوشنبه 23 تیر 1393, 13:53 عصر
مرسی،به این شکل گذاشتم ولی باز هم نمیره به پیج مورد نظر!الان یک صفحه سفید نمایش داده میشه


<system.webServer> <httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" path="~/Error/404 Error.html" responseMode="ExecuteURL"/>
</httpErrors> </system.webServer>

neda555
دوشنبه 23 تیر 1393, 13:57 عصر
اگر remove نکنم ارور :

The page cannot be displayed because an internal server error has occurred.