PDA

View Full Version : مقاله: حل احتمالي مشكل عدم اجراي برنامه هاي ASP.NET -بخش اول



h_r_sh
شنبه 05 بهمن 1387, 16:54 عصر
با سلام به تمام دوستان.
اخيرا بسيار مشاهده مي شود كهبرخي از كاربراني كه از VS و يا VWD براي توليد برنامه هاي تحت وب استفاده مي كنند،بدون اينكه ظاهرا هيچ تغييري در روند نصب، توليد و اجراي برنامه هايشان بدهند، باعدم اجراي برنامه هايي كه تا ديروز بر روي سيستمشان كار مي كرد مواجه مي شوند. وبدتر از آن حتي برنامه هاي كه بر روي سيستم خودشان اجرا نمي شود بر روي سيستم ديگريبدرستي كار مي كند. من هم با چنين مشكل روبرو بودم و آنچه كه در زير مي آورم نتايججستجو و بررسي هاي من در اين زمينه است. اميدوارم كه ساير دوستان هم مطالب خود دراين زمينه را اضافه كنند.
1- مشكل اصلي در بسته شدن پورت باز شده توسط ASP.NET است بوسيله ي آنتي ويروسي كه بر روي سيستم كاربر نصب شده. بدين معنا كه بعد ازاجراي برنامه چنانچه به بخشي از نوار ابزار كه ساعت و بعضي از برنامه هاي در حالاجراي ويندوز را نمايش مي دهد دقت كنيم، شماره ي پورت باز شده توسط ASP.NET را ميبينيم.
اما وقتي IE باز مي شود آدرسي متفاوت از آنچه در ASP.NET نشان داده شدهمي بينيم. به تصوير زير دقت كنيد:



http://phfzba.bay.livefilestore.com/y1pexMOhoKTTQ8oB43rMLXOsqFoHUPuRMJ--dWeMqJJZD2YozvmXcHMUqQDUo8xePQ7oLmyqAGPTRw/problemyh8vm9.jpg



براي حل اين مشكل مي توان به يكي از دو روش زير عمل كرد:
الف - ساده ترين راه اهداء مجوز دسترسي برنامه اي است كه با آن كار مي كنيم بهفايروال.
بدين معنا كه دسترسي مثلا VS را در انتي ويروس فايروال مجاز اعلامكنيم. كه اين كار را مي توان بعد از اينكه برنامه را اجرا كرديم پنجره ي اصلي نرمافزار آنتي ويروس كه در اينجاNOD32 است را باز كرده و از قسمت Setup بخش Personal Firewall را انتخاب مي كنيم. از قسمت سمت راست گزينه ي Configure rules and zones را بر مي گزينيم تا به صفحه اي مانند تصوير زير برسيم:

http://phfzba.bay.livefilestore.com/y1pV2dHTTeloZJhke9htIQBaKVetApR1GODk9yFA42oZ7w3s-2O3zz8yYlACT6tohHF-Wj4lDM3trY/3.bmp



در اين مرحله علامت + كنار برنامه اي را كه با آن كار مي كنيممثلا VS را كليك كرده و سپس دكمه ي Edit را كليك مي كنيم و از قسمت Action گزينه ي Allow و از قسمت Direction گزينه ي Both را انتخاب كرده و نهايتا Ok مي كنيم.
ب - روش دوم كه به نظر نگارنده بهتر از روش گفته شده در مرحله ي قبل مي باشد اين استكه برنامه خود را وادار كنيم كه از يك پورت بخصوص استفاده كند. براي اين منظور لازماست مراحل زير دنبال شود:


1- ب : از منوي Tools زير منوي External Tools راانتخاب كنيد. اين دستور به شما اجازه مي دهد يك منو آيتم جديد دلخواه در منوي اصلي Tools داشته باشيد.
2 - ب : پس از باز شدن پنجره ي External Tools:
در قسمت Title عبارت زير را وارد كنيد:


WebServer on Port 8010



به جاي اين عنوان مي توانيد هر نام ديگري را واردكنيد.
در قسمت Command عبارت زير را وارد كنيد:


C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\WebD ev.WebServer.EXE



نكته: به طور پيش فرض درايو محل نصبسيستم عامل "C" فرض شده است.
نكته : اين مسيريست كه VS به صورت پيش فرض وب سروررا اجرا مي كند.


در قسمت Arguments عبارت زير را وارد كنيد:


/port:8010 /path:$(ProjectDir)



نكته : به جاي 8010 مي توانيد هرعدد دلخواه ديگر وارد كنيد.
نكته : مي توانيد گزينه ي Use output window راعلامت بزنيد تا بعد از اجرا دستور جزييات كار را Output window VS مشاهده نماييد. سرانجام دكمه Apply و OK را كليك كنيد.
تا اين مرحله شما يك Menu Item جديد درمنوي اصلي Tools با نامWebServer on Port 8010 ايجاد كرده ايد كه وظيفه ي آن فعال كردن پورت 8010بر روي وب سرور است.
3 - ب : به عنوان مرحله آخر بايد پروژه ي خودرا به گونه اي تنظيم نماييد كه به صورت اتوماتيك از اين پورت استفاده كند. براي اينمنظور بر روي نام پروژه در قسمت Solution Explorer كليك راست كرده و گزينه Property Pages را انتخاب نماييد. از قسمت سمت چپ گزينه ي Start Option را انتخاب نماييد ودكمه ي راديويي Custom Server را فعال نموده و در قسمت Base URL عبارت زير را واردنماييد:


http://localhost:8010 (http://localhost:8010/)



لازم است قبل از اجراي پروژه ابتدا از منوي Tools دستور WebServer on Port 8010 را اجرا نماييد تا وب سرور ساخته شده فعال گردد. سپس پرژه تان را اجراكنيد.
نكته مهم : چنانچه باز هم پروژه اجرا نشد شماره پورت را تغييردهيد. هم در Property Pages و هم در External Tools. اين به آن دليل است كه پورت 8010 مشغول است.
درقسمت بعد به حل اين مشكل در سيستم عاملهاي 64 بيتي خواهم پرداخت.

jaza_sa
شنبه 05 بهمن 1387, 20:05 عصر
فایر وال ها ، پروتکل های سیستم رو تحت نظر میگیره . و هر فایر والی در یک قسمت اینکار رو انجام میده .
درصورتی که از Nod32 استفاده میکنید از قسمت زیر اینکار رو انجام بدید :
Personal firewall > Protocol filtering > Redirect traffic for filtering for : > HTTP and POP3 ports