دانش عمومی و مهندسی دانش و فناوری

فایل Web.config و هر آنچه که باید درباره آن بدانید

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

به گزارش روکیدا، فایل Web.config از جمله فایل ضروری و کاربردی در جهت تنظیم و پیکره بندی وب سایت‌ها محسوب می شود که در ادامه قصد داریم اطلاعاتی را پیرامون بخش‌ها و تنظیمات موجود در فایل Web.config و نحوه تنظیمات و پیکر بندی آن‌ در اختیار شما قرار دهیم.

پس پیشنهاد می کنیم با روکیدا همراه باشید.

فایل 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 و دو زیر دایرکتوری به نام Sub۱ و Sub۲ در برنامه کاربردی موجود باشند که در درون هر کدام از این دایرکتوری‌ها یک فایل Web.Config قرار داشته باشد تنظیمات هر فایل Web.Config بر فایل‌های داخل زیر دایرکتوری آن اعمال می‌شود، اما اگر در یک فایل Web.Config که داخل زیر دایرکتوری Sub۱ یا Sub۲ قرار دارد یکی از تنظیماتی که در فایل 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 به نمایش در می‌آید که از لحاظ امنیتی گزینه مناسبی نیست.
  •  defaultredirect: آدرس Url فایلی را که برای نمایش خطا در زمان تنظیم خصوصیت mode با مقدار On یا RemoteOnly بکار می‌رود تعیین می‌کند.
  • وضعیت جلسه کاری

تگ برای تعیین وضعیت جلسه کاری مورد استفاده قرار می‌گیرد و مدت زمان یک جلسه کاری و همچنین شکل تعیین درخواست کاربران را تعیین می‌کند.

از صفات مهم این تگ یکی 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) را تعیین می‌کند.

مطالب مرتبط

یکی از مهندسین ناسا ادعا می‌کند که “هلیکال انجین” می‌تواند به ۹۹% سرعت نور برسد

نوید بیک زاده

رباتی با بازوهای بزرگ به نام Guardian GT با توانایی انجام مأموریت‌های دشوار!

نوید بیک زاده

طرح باتری کوانتومی با بدون ذره‌ای نشت شارژ

عباس رهامی

شبکه عصبی مسئله سه جسم نیوتون را سریع‌تر از هر نرم افزاری حل می‌کند

عباس رهامی

کشف سیاه چاله جدید پنهان به کمک روش جدید

عباس رهامی

کامپیوتر کوانتومی گوگل یک آزمایش “غیر ممکن” را پشت سرگذاشت!

نوید بیک زاده

چرا انسان احتمالاً تنها حیات هوشمند در جهان است؟

عباس رهامی

هوش مصنوعی فیسبوک برای کمک به فرار از دست فناوری تشخیص چهره

عباس رهامی

اینترنت ماهواره‌ای اسپیس ایکس با کمک 30 هزار استارلینک جدید

عباس رهامی

پراکسی‌ها عامل نفوذ هکرها به سیستم‌های رایانه‌ای!

کیوان

رمزنگاری و انواع روش‌های آن

کیوان

ساعت هوشمند شیائومی به سیستم عامل گوگل مجهز می شود؟

کیوان

نمایشگر سیال، برگ برنده محصولات آینده وان پلاس

کیوان

Pro 7 ،Surface Laptop 3 و Pro X از زاویه ای دیگر + تصاویر

کیوان

یاهو گروپس (Yahoo Groups) به پایان راه خود رسید

عباس رهامی

Restrict، قدم بعدی اینستاگرام برای مقابله با قلدرهای مجازی

کیوان

رونمایی مایکروسافت از هدفون بی‌سیم خود با ظاهری عجیب

کیوان

ظاهر نرم افزارهای گوگل Docs، Sheets و Slides تغییر کرد؟

کیوان

دیدگاه شما چیست؟