نحوه اجرای WebSite ها و Web Application هایی که در IIS 6.0 کار می‌کردند اما در IIS 7.0 کار نمی‌کنند

در حال ارتقا برنامه شرکت از نسخه ۲۰۰۵ به ۲۰۰۸ ، مشکلاتی پیش آمد که بعضی از آنها راقبلا  در اینجا آوردم. اما بعضی مکلات بصورت پنهان باقی مانده بود و زیاد خودنمایی نمی کرد، چون اصلا کسی به سمت آن هم نرفته بود . مثلا برنامه ما بدون هیچ مشکلی در IIS 6.0 اجرا میشد و پس از ارتقای نسخه هم هیچ مشکلی پیش نیامد. به تازگی روی یکی از سیستمهای شرکت ویندوز ویستا را به جهت تست یکسری موارد ارزیابی نشده نصب کردیم و خواستیم تا برنامه شرکت را روی IIS 7.0 نصب و اجرا کنیم.

خود من به شخصه قبلا خیلی کم از IIS استفاده کردم و در راهبری IIS قوی نیستم، اما در شرکت افرادی هستند که خیلی خوب روی IIS کار کرده اند به همین دلیل هیچ وقت فکر نمی کردیم که به مشکلی هم بر بخوریم . اولین باری که من برنامه را روی IIS 7.0 ( که روی ویستا هست ) نصب کردم اصلا برنامه اجرا نشد و بخاطر ضعف دانشی که از IIS داشتم مشکل را با کسی مطرح نکردم و خواستم تا مشکل را با یک جستجوی ساده روی اینترنت حل کنم. بخاطر کمبود وقتت بررسی مشکل به فراموشی سپرده شد تا اینکه بنا به دلایلی محبور به اجرای برنامه روی IIS 7.0 شدیم.

تا پیش از این (‌نسخه II 7.0 به قبل ) همه وب سایت ها و برنامه ها در یک WebSite مادر با نام Default Web Site نصب و اجرا میشد و این محدودیت های بسیاری را ایجاد می کرد ( مثلا شما نمی توانید در آن واحد بیش از یک اینستنس را اجرا کنید و مشکلات مشابه ) در IIS 7.0 این مشلات برطرف شده و شما می توانید تعداد متعددی از وب سایت های وادر را داشته باشید و وب سایت های مشتریان را نسبت به نوع یا میزان دسترسی و یا چه و چه در وب سایت های مختلف قرار بدهید .

پنجره ایجاد یک WebApplication در IIS 7.0

پنجره ایجاد یک WebApplication در IIS 7.0

یکی از مزایای IIS 7.0 استفاده از یک Application Pool یکپارچه است به این مفهوم که برنامه یا وب سایت نصب شده بصورت یکپارچه از این Application Pool استفاده می کند . با این که این خاصیت مزیت بزرگی محسوب می شود بیشتر برنامه ها و یا وب سایت هایی که در Visual Studio 2005 ایجاد شده اند نمی توانند بصورت یکپارچه از Application Pool استفاده کنند . برای همین باید از Application Pool قدیمی که در نسخه IIS 6.0 به قبل بود استفاده کنند . که بصورت کاملا جداگانه از خود IIS به برنامه دسترسی داشت .

به همین دلیل بیشتر برنامه هایی که ما در شرکت تولید کرده بودیم روی IIS 7.0 اجرا نمیشد . برای حل این مشکل و اجرای صحیح برنامه ها و وب سایت هایی که در نسخه های قبلی IIS بخوبی اجرا می‌شدند باید Application Pool دیگری برای وب سایت استفاده کنید . برای رفع این مشکل بصورت زیر عمل کنید .

     ۱-     بر روی Web Site مادری که می خواهید برنامه تان در آن اجرا شود کلیک راست کرده و گزینه Add Application را انتخاب کنید . ( مثلا روی Default Web Site )

     ۲-     از پنجره ای که باز می شود یک نام ( Alias ) برای برنامه تان انتخاب کرده و در قسمت روبریی بر روی Select کلیک کنید تا پنجره  Select Application Pool باز شود

     ۳-     بعد از باز شدن این پنجره از منوی پایین افتادنی بر روی Classic .net AppPool کلیک کنید تا انتخاب شود و پس از انتخاب بر روی OK کلیک کنید .

پنجره تغییر Default ApplicationPool به Classic .net ApplicationPool

پنجره تغییر Default ApplicationPool به Classic .net ApplicationPool

     ۴-     مسیر برنامه تان را روی هارد مشخص کرده و بر روی OK کلیک کنید .

با اتمام این مراحل اگر مشکل دیگری نداشته باشید برنامه شما باید بصورت صحیح اجرا شود .

One Response to نحوه اجرای WebSite ها و Web Application هایی که در IIS 6.0 کار می‌کردند اما در IIS 7.0 کار نمی‌کنند

  1. Rahim Pourebrahim says:

    واقعا مطلب مفید و مختصری بود من خودم با این مشکل برخوردم برای اجرای پروژه هام و برنامه های سیلورلایت.
    موفق باشید

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: