كيفية تكوين الميمية للعمل مع ويندوز أزور؟ أحصل على 404 على Elmah.axd

StackOverflow https://stackoverflow.com/questions/939783

سؤال

لدي دور ويب ASP.NET MVC يعمل على Windows Azure ولدي الإعداد Elmah بشكل صحيح في Web.config. لدي أيضا طرق تجاهل Global.asax * .AXD. محليا، أنا قادر على تحميل /LMAH.AXD، ولكن عندما أشرف في ازور، أحصل على 404 في تلك الصفحة. هل حصل أي شخص على إلمه في أزور؟

هل كانت مفيدة؟

المحلول

يعتمد Azure على Windows Server 2008 و IIS7. هذا يعني أنك تحتاج إلى ملء نظام System.webserver جزء من ملف Web.config.

يحتوي ملف العينة المضمن في التعليمات البرمجية المصدر بالمحمة على التفاصيل التي تحتاج إلى وضعها.

<system.webServer>
  <validation validateIntegratedModeConfiguration="false"/>
  <modules>
    <remove name="ScriptModule" />
    <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
  </modules>
  <handlers>
    <remove name="WebServiceHandlerFactory-Integrated"/>
    <remove name="ScriptHandlerFactory" />
    <remove name="ScriptHandlerFactoryAppServices" />
    <remove name="ScriptResource" />
    <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
         type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
         type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add name="elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
  </handlers>
</system.webServer>

هناك 2 خطوط إلمح في الكتلة المذكورة أعلاه XML التي ستحتاج إلى تضمينها، وينبغي أن يحتوي القسم بشكل عام على معظم هذه العناصر على أي حال.

تحرير: لم يعد مطلوبا لأن هذا الآن افتراضيا:

للحصول على Elmah للعمل، ستحتاج أيضا إلى تعديل السطر التالي في ملف Servicedefinition.csdef:

<WebRole name="WebRole" enableNativeCodeExecution="true">

نصائح أخرى

قم أيضا بأمان الملف حتى يسمح للمستخدمين المسموح لهم فقط بعرض سجلات الأخطاء!

<location path="admin/elmah.axd">
    <system.web>
        <authorization>
            <allow roles="Administrator" />
            <deny users="*" />
        </authorization>
    </system.web>
</location>

أفكر بالإضافة إلى ذلك (إلى ما اقترحه @ mat1t هنا) قد تحتاج إلى تعيين الوصول عن بعد إلى 1:

<elmah>
<security allowRemoteAccess="0" />
..............
..............
</elmah>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top