‫مشکل اضافه شدن اتوماتیک xmlns به web.config

در Visual Studio 2005 (و احتمالا نسخه ۲۰۰۸) هر بار که Web Site Administration Tool در یک پروژه وب اجرا شود عبارت xmlns=http://schemas.microsoft.com/.NetConfiguration/v2.0“‎ به عنوان یک attribute به تگ <configuration> در web.config اضافه می‌شود. علی الظاهر این کار از دید مایکروسافت یک باگ است و تگ فوق الذکر نباید چنین attributeی داشته باشد. وجود این xmlns در برنامه‌های وبی باعث می‌شود صفحاتی که از AjaxControlToolkit و به خصوص کنترل ConfirmButtonExtender استفاده کرده‌اند دچار مشکل شده و خطای زیر را نشان دهند:

The control with ID ‘cbe1’ requires a ScriptManager on the page. The ScriptManager must appear before any controls that need it.

برای حل این مشکل یعنی اضافه نشدن خودکار xmlns به تگ <configuration> باید فایل WebAdminPage.cs را از شاخه app_code باز کرده و خط:

config.NamespaceDeclared = true;

را در آن به صورت زیر تغییر دهید:

config.NamespaceDeclared = false;

این فایل را یا باید از آدرس C:WINDOWSMicrosoft.NETFrameworkv2.0.50727ASP.NETWebAdminFilesApp_Code پیدا کنید یا اگر مجموعه مدیریتی asp.net را به پروژه خود اضافه کرده‌اید آن را از داخل پروژه خود بیابید.

وجود xmlns فوق الاشاره در app.config برنامه‌های ویندوزی (ویندوز فرم، کنسول) هم مشکل زاست و باعث بروز خطای This application has failed to start because the application configuration is incorrect می‌شود:

This application has failed to start because the application configuration is incorrect

در مورد برنامه‌های ویندوزی نگرانی خاصی وجود ندارد. صرف برداشتن xmlns برای رفع خطا کفایت می‌کند. چون این attribute در حالت نمی‌تواند به طور خود به خود اضافه شود.

مراجع:
http://www.velocityreviews.com/forums/t121990-webconfig-schema-messages.html
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=102404
http://forums.asp.net/p/981068/1359525.aspx

Comments

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *