none
application cash on windows azure webrole RRS feed

  • שאלה

  • שלום לכולם,

    מזה זמן מה אני מנסה ליישם את מנגנון ה application cache שב html5 על הפרוייקט שלי בענן, ללא הצלחה.

    קצת על הפרוייקט:  windows azure webrole  , mvc3 , C# , azure sql

    קובץ ה manifest שלי נבנה דינמית ע"י controller

    controller:

    public ActionResult Manifest()
    {
     Response.Cache.SetCacheability
          (System.Web.HttpCacheability.NoCache);
     return View();
    }

    View:

    @{
        Response.ContentType = "text/cache-manifest";
        Response.ContentEncoding = System.Text.Encoding.UTF8;
        Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
        Layout = null;
    }
    CACHE MANIFEST 
    # 2/4/2012:V2
    
    NETWORK:
    #Views
    @Url.Action("Index","Group")
    @Url.Action("OfflineIndex","Group")
    
    CACHE: 
     #JS FILES
    @Url.Content("~/Scripts/jquery-1.6.4.min.js")
    @Url.Content("~/Scripts/jquery-ui.1.8.16.min.js")
    @Url.Content("~/Scripts/jquery.mobile-1.0b3.min.js")
    @Url.Content("~/Scripts/jquery.validate.min.js")
    @Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")
    @Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")
    
    #CSS FILES 
    @Url.Content("~/Content/Rtl.css")
    @Url.Content("~/Content/JQM/jquery.mobile-1.0b3.css")
    @Url.Content("~/Content/JQM/jquery-ui.css")
    @Url.Content("~/Content/Site.css?v=2")" 
    
    
    FALLBACK:
    @Url.Action("Offline","Group")

    כל העסק עובד מצויין לוקלית , אבל בענן אני מקבל http error 500 על קובץ ה manifest.

    כל הצעה תתקבל בברכה!

    תודה,

    ניר


    • הועבר על-ידי Eran Sharvit יום שני 16 אפריל 2012 10:38 (מאת:Web Development)
    יום שני 16 אפריל 2012 06:35

כל התגובות

  • השאלה הועברה לפורום המתאים - Windows Azure.

    תודה,

    צוות הפורומים


    מיקרוסופט מציעה שירות זה ללא תשלום, למטרת סיוע למשתמשים והעשרת הידע הקשור בטכנולוגיות ובמוצרים של מיקרוסופט. תוכן זה מתפרסם כפי שהוא והוא אינו מעיד על כל אחריות מצד מיקרוסופט.

    יום שני 16 אפריל 2012 10:39
  • היי,

    האם השגיאה היא רק על קובץ ה manifest? כלומר, כל שאר האתר עובד בסדר?

    האם תוכל להתחבר ב remote desktop ל instance של ה web role שלך ולנסות לדלות עוד מידע מהמחשב (מה event log לדוגמא)?

    בברכה,
    שי.


    Shay Friedman | Visual C# MVP | Blogger, podcaster, author, speaker and geek! | Twitter: http://twitter.com/ironshay | Blog: http://IronShay.com

    שבת 21 אפריל 2012 06:47
    מנחה דיון
  • שאלה - האם אתה מקבל את השגיאה רק על ה-manifest כששאר האתר ב-mvc עובד טוב בענן?

    זה שאתה מקבל הודעת 500 מרמז שיש בעיה בטיפול בבקשה בצד השרת, ולכן קודם חשוב לדעת האם controller-ים אחרים ו-actions אחרים עובדים.

    אם אתה מקבל שגיאות נוספות, יכול להיות שיש לזה קשר ל-routing module שלא מותקן כמו שצריך ב-iis (נתקלתי בלא מעט מקרים בעבר שהיה צריך להוסיף ידנית את ה-routing module ל-web.config בעוד שלוקלית הוא מסתבר בלי כי הוא קיים ב-web.config הראשי וגם לפעמים מצבים שאנשים משנים את ה-runAllManagedModulesForAllRequests ל-false בעוד שהוא צריך להיות true בשביל routing).

    כפי ששי הציע, מומלץ לאפשר remote desktop לשרת, להכנס ל-IIS ולהפעיל failed request tracing בשביל לראות מה הודעת השגיאה האמיתית שמתרחשת בשרת (לא תמיד זה מוצג ב-event viewer).

    בלי remote desktop זה גם אפשרי - אפשר לקנפג את ה-failed request tracing ב-web.config עצמו ואז להעלות את זה לשרת, אבל אז גם תצטרך לאפשר diagnostics על ה-role ולבצע העלאה של הלוגים ל-blob. עדיף remote desktop :-)

    אם אתה לא מסתדר, תפרט מה עוד בדקת (הרצה של דפי aspx/cshtml רגילים, בדיקת actions אחרים) ותרשום לנו גם מה גרסת הדוטנט שאתה עובד איתה ותצרף את ה-web.config שלך.


    Please mark posts as answers/helpful if it answers your question.
    Senior Consultant on WCF, ASP.NET, Siverlight, and Entity Framework. Author of Microsoft's Official WCF 4 Course. Co-author of the Microsoft HPC/Azure burst whitepaper.
    Visit my blog: http://blogs.microsoft.co.il/blogs/idof

    יום ראשון 22 אפריל 2012 10:13
  • אהלן,

    האתר - רובו ככולו - עובד מצויין, למעט ה manifest.

    רעיון ה RDP נשמע לי מצויין, ואני מממש אותו ברגעים אלו ממש - אחזור עם עדכונים.

    תודה לכולם!

    ניר


    Nir Weiner

    יום שני 23 אפריל 2012 05:19
  • עדכון:

    לאחר התחברות עם RDP, הפעלת (Failed Request Tracing(FRT וקצת עבודה מול האתר בנסיון לייצר שגיאות, לא נרשמו ממצאים ב FRT.

    שארית האתר, כאמור, פועלת מצויין על dot net framework 4

    להלן ה web.config של :

    <?xml version="1.0" encoding="utf-8"?>
    <!--
      For more information on how to configure your ASP.NET application, please visit
      http://go.microsoft.com/fwlink/?LinkId=152368
      -->
    <configuration>
      <configSections>
        <section name="facebookSettings" type="Facebook.FacebookConfigurationSection" />
        <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net" />
      </configSections>
      <dataCacheClients>
        <dataCacheClient name="default">
          <hosts>
            <host name="#######################" cachePort="22233" />
          </hosts>
          <securityProperties mode="Message">
            <messageSecurity authorizationInfo="***************"></messageSecurity>
          </securityProperties>
        </dataCacheClient>
        <dataCacheClient name="SslEndpoint">
          <hosts>
            <host name="##########" cachePort="22243" />
          </hosts>
          <securityProperties mode="Message" sslEnabled="true">
            <messageSecurity authorizationInfo="*************"></messageSecurity>
          </securityProperties>
        </dataCacheClient>
      </dataCacheClients>
      <connectionStrings>
        <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
        <add name="groupconnectorEntities" connectionString="metadata=res://*/########.csdl|res://*/########.ssdl|res://*/#######.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=*******;initial catalog=*****;persist security info=True;user id=***;password=****;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
      </connectionStrings>
      <appSettings>
        <add key="webpages:Version" value="1.0.0.0" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
      </appSettings>
      <system.net>
        <mailSettings>
          <smtp from="***********" deliveryMethod="Network">
            <network host="*********" port="**" userName="*********" password="*************" defaultCredentials="true" />
          </smtp>
        </mailSettings>
      </system.net>
      <system.web>
        <globalization culture="auto" uiCulture="auto" />
        <!--  <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
          <providers>
            <add name="AppFabricCacheSessionStoreProvider"
                 type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
                 cacheName="default"
                 useBlobMode="true"
                 dataCacheClientName="SslEndpoint" />
          </providers>
        </sessionState>-->
        <compilation debug="true" targetFramework="4.0">
          <assemblies>
            <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
          </assemblies>
        </compilation>
        <authentication mode="Forms">
          <forms loginUrl="~/Account/RolllIn" timeout="43200" />
        </authentication>
        <machineKey validationKey="************************" decryptionKey="****************" validation="SHA1" decryption="AES" />
        <!-- AntiXssLibrary Src: http://wpl.codeplex.com/ -->
        <!-- httpRuntime encoderType="Microsoft.Security.Application.AntiXssEncoder, AntiXssLibrary" / -->
        <membership>
          <providers>
            <clear />
            <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
          </providers>
        </membership>
        <profile>
          <providers>
            <clear />
            <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
          </providers>
        </profile>
        <roleManager enabled="false">
          <providers>
            <clear />
            <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
            <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
          </providers>
        </roleManager>
        <pages>
          <namespaces>
            <add namespace="System.Web.Helpers" />
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing" />
            <add namespace="System.Web.WebPages" />
          </namespaces>
        </pages>
      </system.web>
      <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true" />
        <security>
          <requestFiltering>
            <fileExtensions allowUnlisted="true">
              <add fileExtension=".php" allowed="false" />
            </fileExtensions>
          </requestFiltering>
        </security>
        <staticContent>
          <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="48:00:00" />
        </staticContent>
      </system.webServer>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="*********" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
      <facebookSettings appId="*******" appSecret="********" />
      <log4net>
        <root>
          <level value="ALL" />
          <appender-ref ref="ADONetAppender" />
        </root>
        <appender name="ADONetAppender" type="log4net.Appender.AdoNetAppender">
          <bufferSize value="1" />
          <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
          <connectionString value="data source=*****;initial catalog=******;persist security info=True;user id=*******;password=*********" />
          <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
          <parameter>
            <parameterName value="@log_date" />
            <dbType value="DateTime" />
            <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
          </parameter>
          <parameter>
            <parameterName value="@thread" />
            <dbType value="String" />
            <size value="255" />
            <layout type="log4net.Layout.PatternLayout" value="%thread" />
          </parameter>
          <parameter>
            <parameterName value="@log_level" />
            <dbType value="String" />
            <size value="50" />
            <layout type="log4net.Layout.PatternLayout" value="%level" />
          </parameter>
          <parameter>
            <parameterName value="@logger" />
            <dbType value="String" />
            <size value="255" />
            <layout type="log4net.Layout.PatternLayout" value="%logger" />
          </parameter>
          <parameter>
            <parameterName value="@message" />
            <dbType value="String" />
            <size value="4000" />
            <layout type="log4net.Layout.PatternLayout" value="%message" />
          </parameter>
        </appender>
      </log4net>
    </configuration>

    תודה,

    ניר


    Nir Weiner

    יום שלישי 24 אפריל 2012 10:12
  • ניסיתי להעלות את אותו קוד אצלי והכל עובד... האם יש עוד דברים שאתה עושה בכל request? אולי אתה משתמש ב filters של ASP.NET MVC? או יש משהו ב global.asax?

    הייתי מנסה גם אולי להוריד את ה AppFabric Cache רק כדי לוודא שהוא לא זה שגורם לבעיה.

    שי.


    Shay Friedman | Visual C# MVP | Blogger, podcaster, author, speaker and geek! | Twitter: http://twitter.com/ironshay | Blog: http://IronShay.com

    שבת 28 אפריל 2012 05:55
    מנחה דיון
  • אהלן,

    תוכל להרחיב על  ' להוריד את ה appfabric cache' ? --> האם הכוונה ל download  או ל- cancel ?

    מה ב global.asax  או ב asp.net כןךאקרד יכול לגרום לבעיה? , מה לחפש , או לחילופין, מה לפרסם?

    שוב תודה,

    ניר


    Nir Weiner

    יום רביעי 02 מאי 2012 19:27
  • הי ניר

    אתה יכול בבקשה לפרסם את תוכן קובץ ה SeviceDefinition.csdef שלך?

    יום שלישי 15 מאי 2012 09:03
    מנחה דיון