نمایش نتایج 1 تا 1 از 1

نام تاپیک: سرقت Machine.Config از هاست!

  1. #1

    سرقت Machine.Config از هاست!

    شاید مرسوم نباشه که نکاتی از این دست به صورت عمومی منتشر بشن اما چون گاها برنامه نویسان ممکنه با مشکلاتی مواجه بشن که در ظاهر توضیحی منطقی برای مشکلشون وجود نداره و این مورد نیز یکی از اون نکات هست، بیان اون رو جایز میدونم. اما به قول معروف: !!!USE AT YOUR OWN RISK

    در یکی از پروژه هایی که بر روی اون کار میکردم، نیاز به آپلود فایل هایی با حجمی بین 5 تا 7 مگابایت بود. همون طور که احتمالا میدونید، ASP.NET به طور پیش فرض اجازه ی آپلود فایل هایی با حجم بیش از 4 مگابایت رو نمیده. برای رفع این محدودیت میتونید در Web.Config با تنظیم خاصیت maxRequestLength تگ httpRuntime به مقدار مورد نظر حداکثر اندازه ی Request رو مشخص کنید...
    من این کار رو انجام داده بودم و در ظاهر نباید مشکلی پیش می آمد اما پس از آپلود فایل، پس از چند لحظه ارتباط با سرور قطع میشد و در IE پیغام "The page cannot be displayed" و در Firefox پیغام "Connection was Reset" نمایش داده میشد.
    چند فایل با حجم های متفاوت رو بررسی کردم و در نهایت متوجه شدم که حداکثر حجم فایلی که می تونم آپلود کنم، 2 مگابایت بیشتر نیست!
    با هاست (که اتفاقا یکی از هاست های معروف ایرانی هست) تماس گرفتم و اونها اظهار بی اطلاعی کردند و تیم فنی در مورد httpRuntime در Web.Config گفت و من هم گفتم که قبلا این کار رو انجام دادم... خلاصه اینکه از هاست به نتیجه ای نرسیدم!
    در نهایت از خود NET. کمک گرفتم...!
    همون طور که میدونید، فایل Machine.Config قلب پیکربندی تمامی پروژه هایی هست که بر روی هاست قرار میگیرن. اما برنامه نویس این امکان رو داره تا برخی از تنظیمات مورد نیاز پروژش رو از طریق Override کردن برخی از تگ های Machine.Config در فایل Web.Config اش مطابق با میل خودش تطبیق بده.
    اما این امکان برای Machine.Config نیز وجود داره که اجازه نده پروژه ها بتونن برخی تنظیمات اون رو Override کنن!
    بدین منظور کافیست یک تگ location با خاصیت allowOverride برابر با false در Machine.Config قرار بگیره و قسمتی رو که مایل نیستید توسط Web.Config پروژه ها Override بشه در این قسمت قرار بدید.
    من احتمال دادم که هاست این کار رو انجام داده... اما برای اثبات این موضوع نیاز به دیدن محتویات فایل Machine.Config هاست هست!...
    خوشبختانه ASP.NET 2.0 این امکان رو در اختیار شما قرار داده!!!
    فایل Machine.Config در مسیر ذیل وجود داره:

    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONF IG
    متد OpenMachineConfiguration کلاس WebConfigurationManager این کار رو برای شما انجام میده!
    برای دسترسی به مسیر فوق باید مجوز Read داشته باشید... از اونجایی که پروژه ی شما در پشت صحنه تنظیماتش رو از این فایل میخونه، در اکثر موارد اجازه ی دسترسی به این مسیر برای پروژه ها وجود داره... البته میشه از دسترسی به این مسیر جلوگیری کرد اما بخش فنی هاست ها اکثرا از این نکته غافل هستند...
    نهایتا من به شکل ذیل فایل Machine.Config هاست رو به دست آوردم:
    [code]

    Dim mConfig As System.Configuration.Configuration
    mConfig = System.Web.Configuration.WebConfigurationManager.O penMachineConfiguration()
    mConfig.SaveAs(Server.MapPath(".") & "\my_Host_Machine_Config.xml")

    و بعد از باز کردن فایل، قسمت ذیل رو دیدم:

    <location allowOverride="false">
    <system.web>
    <httpRuntime maxRequestLength ="2048" executionTimeout ="90"/>
    </system.web>
    </location>

    و بدینگونه بود که هاست رسوا شد!

    فایل Machine.Config هاست رو از ذیل میتونید دانلود کنید.

    موفق باشید.
    فایل های ضمیمه فایل های ضمیمه

تاپیک های مشابه

  1. کسی برنامه Turing machine رو داره؟
    نوشته شده توسط arash1718 در بخش C#‎‎
    پاسخ: 5
    آخرین پست: چهارشنبه 19 دی 1386, 00:12 صبح
  2. Machine name
    نوشته شده توسط yavari در بخش VB.NET
    پاسخ: 3
    آخرین پست: سه شنبه 01 اسفند 1385, 20:50 عصر
  3. standard format for machine.config
    نوشته شده توسط سهیلا در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: دوشنبه 24 مرداد 1384, 20:29 عصر
  4. نصب DNS بر روی local machine
    نوشته شده توسط Farhad.B.S در بخش شبکه و Networking‌
    پاسخ: 14
    آخرین پست: پنج شنبه 12 شهریور 1383, 14:14 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •