فایل Web.config و هر آنچه که باید درباره آن بدانید، از فایل Web.config در کجا استفاده می گردد؟
به گزارش وبلاگ ساعتچی، فایل Web.config از جمله فایل ضروری برای پیکره بندی وب سایت ها در پروژه های ASP.NET محسوب می گردد که می توان هنگام گسترش و توسعه برنامه ایجاد و بازنگری نمود.

به گزارش خبرنگار ، فایل Web.config از جمله فایل ضروری و کاربردی در جهت تنظیم و پیکره بندی وب سایت ها محسوب می شود که در ادامه قصد داریم اطلاعاتی را پیرامون در اختیار شما قرار دهیم.
پس پیشنهاد می کنیم با همراه باشید.
فایل Web.config از جمله فایل ضروری و کاربردی برای کانفیگ و پیکره بندی وب سایت ها در وب سرور IIS و پروژه های ASP.NET محسوب می شود. درست از زمانی که آغاز به طراحی و توسعه وب سایت می کنیم تا انتهای برنامه و application های مربوطه، مرتبا نیاز به اعمال تغییرات در فایل Web.config است و این تغییرات نه تنها تغییرات امنیتی برنامه های کاربردی هستند، بلکه طیف گسترده ای از اهداف مختلف را می توان در فایل Web.config مدیریت نمود.
در زبان برنامه نویسی ASP.NET، فایل Web.config، انعطاف پذیری بسیار خوبی جهت مدیریت تمام نیاز ها در سطح برنامه کاربردی (application level) را فراهم می نماید. بد نیست بدانید؛ فایل Web.config را در زبان ASP.NET، می توان هنگام ایجاد برنامه و یا هنگام گسترش و یا بعد از گسترش و توسعه برنامه ایجاد و بازنگری نمود.
بیشتر برنامه های کاربردی کامپیوتری دارای بخشی به نام Setup هستند که برای انجام تنظیمات متناسب با استفاده های مختلف کاربران مورد استفاده قرار می گیرد. برنامه های کاربردی مبتنی بر Web نیز که دارای کاربران زیادی هستند از این قائده مستثنی نیستند و نیاز به انجام تنظیماتی متناسب با کاربرد های مختلف خود دارند.
در ASP.NET اینگونه تنظیمات که مربوط به منابع مورد استفاده برنامه کاربردی، اطلاعات محلی، اطلاعات امنیتی و… می شوند در داخل یک فایل XML ذخیره می شوند که نام آن Web.Config است و طبعا به مانند اسناد XML شامل تعدادی تگ (معادل Tag در HTML) است و به کوچک و بزرگ بودن حروف نیز حساس است (Case Sensitive). فایل Web.config شامل تعداد زیادی تگ با خصوصیات مختلف است که هر یک به جنبه ای از یک برنامه کاربردی تحت Web مربوط هستند.
محل و محدوده عملکرد فایل Web.Config
به طور طبیعی هر برنامه کاربردی Web در ASP.NET دارای حداقل یک فایل Web.Config در داخل دایرکتوری ریشه خود است که به طور اتوماتیک توسط Visual Studio.NET در زمان ایجاد این Web Application ایجاد شده و با مقادیر پیش فرض در دایرکتوری ریشه برنامه کاربردی قرار می گیرد.
اما برنامه نویسان می توانند بر حسب نیاز ها و کاربرد های برنامه های خود تعداد بیشتری از این فایل XML را در داخل دایرکتوری های مختلف برنامه ایجاد نمایند و برای تنظیمات فایل های داخل همان دایرکتوری یا زیر دایرکتوری های آن به کار گیرند.
تنظیمات هر فایل Web.Config به فایل های داخل زیر دایرکتوری ای که در آن واقع شده است و همچنین زیر دایرکتوری های آن اعمال می شود.همچنین برنامه نویس می تواند به وسیله کد های داخل هر فایل Web.Config منابع و دایرکتوری های مورد نظر را تغییر دهد.
برای درک بهتر نحوه ارتباط فایل های Web.Config در یک برنامه کاربردی Web، مثال زیر را بیان می کنیم. اگر یک دایرکتوری به نام main و دو زیر دایرکتوری به نام Sub1 و Sub2 در برنامه کاربردی موجود باشند که در درون هر کدام از این دایرکتوری ها یک فایل Web.Config قرار داشته باشد تنظیمات هر فایل Web.Config بر فایل های داخل زیر دایرکتوری آن اعمال می شود، اما اگر در یک فایل Web.Config که داخل زیر دایرکتوری Sub1 یا Sub2 واقع شده است یکی از تنظیماتی که در فایل Web.Config که داخل main واقع شده است صورت نگرفته باشد مقدار تنظیم شده در داخل فایل موجود در main به زیردایرکتوری ها به ارث می رسد.
نکته ای که باید در اینجا به آن اشاره نمود این است که کاربران برنامه وب به محتوای فایل های Web.Config دسترسی ندارند.
ساختار فایل Web.Config
هر فایل Web.Config شامل یک بخش پایه است که همان دو تگ و هستند و بقیه محتوا درون این دو تگ قرار می گیرد. پس ساختار کلی هر فایل Web.Config به صورت زیر است:
محتوای هر فایل Web.Config شامل دو بخش اساسی است:
- معرفی و تنظیمات:
بخش معرفی داخل دو تگ و قرار می گیرد.
- بخش تنظیمات:
تنظیمات مربوط به منابع معرفی شده در این تگ ها را شامل می شود.
ابتدای فایل Web.Config و بعد از تگ، تگ جفت واقع شده است. داخل این تگ و تگ جفت آن یعنی تگ هایی جهت معرفی منابع و اداره نماینده قسمت ها واقع شده است.
تگ های مهم فایل Web.Config
حال که با ساختار کلی فایل Web.Config آشنا شدیم در ادامه به شرحاتی در خصوص تگ های مهم این فایل و خصوصیات آن ها می پردازیم.
- Location
پیشتر اشاره شد که تنظیمات هر فایل Web.Config بر فایل های داخل ریشه این فایل و زیردایرکتوری های آن اعمال می شوند، حال اگر بخواهیم تنظیمات یک فایل Web.Config را بر دایرکتوری خاصی اعمال کنیم تنها ضروری است این تنظیمات را داخل یک جفت تگ و قرار دهیم .
از تگ برای تعریف خصوصیات فرهنگی و زبانی برنامه کاربردی استفاده می شود. خواص مهم این تگ عبارتند از:
- culture: فرهنگ برنامه کاربردی را معین می نماید.
- requestencoding: شکل رشته های درخواست شده را معین می نماید (برای مثال Unicode).
- responseencoding: شکل رشته های پاسخ را معین می نماید.
- تگ های امنیتی
درون فایل Web.Config تگ هایی جهت تنظیم مقادیر و خصوصیات امنیتی برنامه کاربردی قابل تعریف هستند. جفت تگ های و و و ساختارامنیتی درون فایل Web.Config را می سازند که دارای خصوصیات و مقادیر متفاوتی هستند که شرح در خصوص آنان به مباحث مقدماتی امنیت در ASP. NET بر می شود.
- خطای زمان اجرا
تگ جهت معین شکل عملکرد برنامه در زمان وقوع یک خطای پیش بینی نشده در زمان درخواست یک صفحه توسط کاربر به کار می رود. این تگ دارای دو صفت مهم است که در زیر شرح داده شده اند.
- mode: این صفت جهت معین نوع عملکرد برنامه کاربردی در مواجهه با خطا به کار می رود و یکی از سه مقدار RemoteOnly، On و Off را می گیرد. با تنظیم این صفت با مقدار RemoteOnly در صورت بروز خطای زمان اجرا صفحه از پیش معین شده در قسمت defaultredirect برای کاربران نشان داده خواهد شد، اما کاربرانی که بصورت محلی از برنامه استفاده می نمایند (مقابل سرور نشسته اند) صفحه اتوماتیک ASP.NET و جزئیات خطا را خواهند دید. با تنظیم این صفت با مقدار On در صورت بروز خطای زمان اجرا همیشه صفحه از پیش معین شده در قسمت defaultredirect نشان داده خواهد شد. با تنظیم این صفت با مقدار Off صفحه خطای اتوماتیک ASP. NET به نمایش در می آید که از لحاظ امنیتی گزینه مناسبی نیست.
- وضعیت جلسه کاری
تگ برای معین وضعیت جلسه کاری مورد استفاده قرار می گیرد و مدت زمان یک جلسه کاری و همچنین شکل معین درخواست کاربران را معین می نماید.
از صفات مهم این تگ یکی Cookiless است که معین می نماید جلسه کاری کاربران به وسیله Cookie ها یا SessionID ها نسبت داده شوند که دو مقدار true یا false را می گیرد: true برای استفاده از SessionID و false برای استفاده از Cookie.
خصیصه مهم دیگر این تگ mode است که یکی از چهار مقدار زیر را می گیرد:
- Off: جلسه کاری غیر فعال
- Inproc: اطلاعات به صورت In-process ذخیره می شوند.
- SQLServer: اطلاعات جلسه کاری توسط پایگاه داده SQL Server مدیریت می شوند.
- StateServer: اطلاعات توسط یک سرویس Out-Of-Process مدیریت می شوند.
- خصوصیت مهم دیگر این تگ timeout است که زمان اعتبار جلسه کاری هر کاربر را بر حسب دقیقه معین می نماید.
- کامپایل برنامه کاربردی
تگ برای معین خصوصیات مربوط به شکل کامپایل برنامه کاربردی مورد استفاده قرار می گیرد که دو خصیصه مهم آن عبارتند از:
- debug: یکی از دو مقدار true یا false را می گیرد (false پیش فرض است) و معین می نماید که اطلاعات اشکال زدایی در اسمبلی های بعد از کامپایل قرار بگیرند یا خیر. با تنظیم این خصیصه با مقدار true این کار صورت می گیرد؛ و با تنظیم این خصیصه با مقدار false این کار صورت نمی گیرد.
- defaultlanguage: زبان برنامه نویسی مورد استفاده جهت کامپایل برنامه کاربردی (به صورت Dynamic) را معین می نماید.