The official release of Ext.NET Mobile is now available. Ext.NET Mobile is an ASP.NET component framework for building Phone and Tablet specific mobile web applications. Read More

[CLOSED] Deployment Issue

Page 1 of 3 123 LastLast
  1. #1

    [CLOSED] Deployment Issue

    We completed a major set of changes to our EXT.NET mobile application. It works great on Chrome locally without any issues.

    When we deployed to Production, we found that only one image on our login page loaded (it was as Content). All the EXT.NET mobile stuff didnt load at all on real android or iOS devices that loaded the old site just fine.

    On my Android device, i saw the same problem. After clearing cache or using incognito, i was able to get it to work. iOS was a disaster and wouldnt load at all.

    We ended up to roll back the entire update. Any suggestions or ideas here? I don't even know where to start.

    it isnt a specific bug; rather, some EXT.net caching issue.

    Let me know what you need to proceed. I am happy to take it offline and show it to you since this isnt something i can "post" to a forum as it is the entire deployment.

    thanks,
    /Z
  2. #2
    Hello @Z!

    Sorry to hear you've had a bad experience deploying your Ext.NET application. How exactly are you referencing the images for your login page? Just using the theme's icons, or using full url to the resources?

    If you are using URLs for images, then using a cache buster may help (i.e. adding a unique ?uniqueKey123 to the end of the URL).

    There's also a chance the images you are talking about are feed from a font file (glyphs), and the font for some reason is not being loaded by the phone browsers you are using.

    Did you get the same result if you loaded the page on your desktop, using Chrome, with developer tools open and device emulation to either iOS or Android? The 'network' tab might reveal what URLs are not loading and the console, any javascript error that could have raised once published.

    I hope this helps!
    Fabrício Murta
    Developer & Support Expert
  3. #3
    ONLY the top images shows because it is Content (img.png)....
    the EXT stuff is all missing.
    we use a custom Fingerprint class that creates a fake sub directory (h-234234343). Then we use a server rewrite to remove the fake directory on the way to the server. The fake directory uses a long (which is timestamp of write) so we never have a caching issue.

    My problem is EXT doesn't load!!! All my EXT controls are missing!

    see my primary page. I am thinking the issue is the themes we added (that was new)

    /Z

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Mobile.Views.Account.Login" %>
    
    
    <!DOCTYPE html>
    
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>zzz</title>
        <link rel="stylesheet" type="text/css" href="<%=Mobile.Fingerprint.Tag("/mobile/resources/css/stuff.css")%>" />
    
    
        <script type="text/javascript" src="<%=Mobile.Fingerprint.Tag("/mobile/resources/js/mobile.js")%>"></script>
        <script type="text/javascript" src="<%=Mobile.Fingerprint.Tag("/mobile/resources/js/util.js")%>"></script>
    </head>
    
    
    <body>
    
    
        <ext:ResourceManager runat="server" Theme="Neptune" />
    
    
        <ext:Store ID="AppCache" runat="server" AutoLoad="false">
            <Model>
                <ext:Model ID="NameValuePair" IDProperty="id" runat="server">
                    <Fields>
                        <ext:ModelField Name="name" />
                        <ext:ModelField Name="value" />
                    </Fields>
                </ext:Model>
            </Model>
        </ext:Store>
    
    
        <ext:Viewport ID="Viewport1" runat="server" EnableTheming="true">
            <Items>
                <ext:TabPanel runat="server" Layout="CardLayout" ID="mobileTabPanel">
                    <TabBarConfig Hidden="true" />
                    <Items>
                        <ext:FormPanel
                            runat="server"
                            ID="loginForm"
                            Scrollable="Both"
                            StyleHtmlContent="true">
                            <Items>
                                <ext:Container
                                    runat="server"
                                    MarginSpec="10 5 10 5">
                                    <Content>
                                        <img src="/mobile/resources/images/img.png" alt="Logo" style="height: auto; width: auto; max-width: 400px; max-height: 120px; display: block; margin-left: auto; margin-right: auto" />
                                    </Content>
                                </ext:Container>
    
    
                                <ext:Container runat="server"
                                    Hidden="true"
                                    ID="loginError"
                                    MarginSpec="10 5 10 5">
                                    <Content>
                                        <center style='color: #990000; margin: 5px 0px;'></center>
                                    </Content>
                                </ext:Container>
                                <ext:TextField
                                    ID="username"
                                    runat="server"
                                    Label="Username"
                                    LabelWidthPercent="40"
                                    Required="true"
                                    Padding="5"
                                    MarginSpec="10 5 10 5"
                                    AutoCapitalize="false"
                                    AutoFocus="true"
                                    PlaceHolder="Username"
                                    AutoFocusDelay="100">
                                </ext:TextField>
                                <ext:PasswordField
                                    ID="pin"
                                    runat="server"
                                    Label="Password"
                                    MarginSpec="10 5 10 5"
                                    PlaceHolder="PIN"
                                    LabelWidthPercent="40"
                                    Padding="5"
                                    Required="true">
                                </ext:PasswordField>
                                <ext:Button
                                    runat="server"
                                    ID="loginBtn"
                                    Text="Login"
                                    MarginSpec="10 5 10 5"
                                    MinHeight="38"
                                    Cls="okBtn"
                                    UI="Action">
                                    <Listeners>
                                        <Tap Fn="onLoginBtnTap" />
                                    </Listeners>
                                </ext:Button>
                            </Items>
                        </ext:FormPanel>
    
    
    
    
                        <ext:TabPanel runat="server" ActiveTabIndex="0" PaddingSpec="0 8" ID="mainTabView" >
                            <TabBarConfig Docked="bottom" EnableTheming="true" Scrollable="Horizontal">
                                <LayoutConfig>
                                    <ext:LayoutConfig>
                                        <CustomConfig>
                                            <ext:ConfigItem Name="pack" Value="center" />
                                            <ext:ConfigItem Name="align" Value="center" />
                                        </CustomConfig>
                                    </ext:LayoutConfig>
                                </LayoutConfig>
                                <abcaults>
                                    <ext:Parameter Name="iconAlign" Value="top" />
                                </abcaults>
                            </TabBarConfig>
                            <abcaults>
                                <ext:Parameter Name="scrollable" Value="true" Mode="Raw" />
                            </abcaults>
                            <Items>
                                <ext:Panel Title="xyz" runat="server" IconCls="x-fa fa-xyz" ID="xyz">
                                    <Items>
                                        <ext:UserControlLoader UserControlID="xyzCtl" runat="server" Path="~/Views/xyz/xyz.ascx" />
                                    </Items>
                                    <Listeners>
                                        <Show handler="onxyzButtonTap(); tabIndex = this.id;" />
                                    </Listeners>
                                </ext:Panel>
                                <ext:Panel Title="abc" runat="server" IconCls="x-fa fa-puff" ID="abc" Layout="FitLayout">
                                    <Items>
                                        <ext:UserControlLoader UserControlID="abcCtl" runat="server" Path="~/Views/abc/abc.ascx" />
                                    </Items>
                                    <Listeners>
                                        <Activate Fn="onabcTabInitialized" />
                                        <Show handler="onabcTabActivated(); tabIndex = this.id" />
                                    </Listeners>
                                </ext:Panel>
                                <ext:Panel Title="def" runat="server" IconCls="x-fa fa-blah-o" ID="def" Layout="FitLayout">
                                    <Items>
                                        <ext:UserControlLoader UserControlID="defCtl" runat="server" Path="~/Views/def/def.ascx" />
                                    </Items>
                                    <Listeners>
                                        <Activate handler="ondefTabActivated(); tabIndex = this.id" />
                                    </Listeners>
                                </ext:Panel>
                                <ext:Panel Title="ghi" runat="server" IconCls="x-fa fa-plus" ID="ghi" Layout="FitLayout">
                                    <Items>
                                        <ext:UserControlLoader UserControlID="ghiCtl" runat="server" Path="~/Views/ghi/ghi.ascx" />
                                    </Items>
                                    <Listeners>
                                        <Activate handler="onghiTabActivated(); tabIndex = this.id" />
                                    </Listeners>
                                </ext:Panel>
                                <ext:Panel Title="Fill Shift" Layout="CardLayout" runat="server" IconCls="x-fa fa-search" ID="jkl">
                                    <Items>
                                        <ext:UserControlLoader UserControlID="jklCtl" UIName="dark" runat="server" Path="~/Views/jkl/jkl.ascx" />
                                    </Items>
                                    <Listeners>
                                        <Activate Fn="onjklTabInitialized" />
                                        <Show handler="onjklTabActivated(); tabIndex = this.id" />
                                    </Listeners>
                                </ext:Panel>
                                <ext:Panel Title="mno" runat="server" IconCls="x-fa fa-plane" ID="mno" Centered="true" Layout="FitLayout">
                                    <Items>
                                        <ext:UserControlLoader UserControlID="mnoCtl" runat="server" Path="~/Views/mno/mno.ascx" />
                                    </Items>
                                    <Listeners>
                                        <Show handler="onmnoTabActivated(); tabIndex = this.id" />
                                    </Listeners>
                                </ext:Panel>
                                <ext:Panel Title="pqr" runat="server" IconCls="x-fa fa-info-circle" ID="pqr" Layout="FitLayout" ActiveIndex="6">
                                    <Items>
                                        <ext:UserControlLoader UserControlID="pqrCtl" runat="server" Path="~/Views/pqr/pqr.ascx" />
                                    </Items>
                                    <Listeners>
                                        <Show handler="tabIndex = this.id" />
                                    </Listeners>
                                </ext:Panel>
                                <ext:Panel Title="Logout" runat="server" IconCls="x-fa fa-sign-out" Cls="logOutPanel"  ID="Logout" Layout="FitLayout">
                                    <Items>
                                        <ext:UserControlLoader UserControlID="logoutCtl" runat="server" Path="~/Views/Logout/Logout.ascx" />
                                    </Items>
                                </ext:Panel>
                            </Items>
                        </ext:TabPanel>
    
    
                    </Items>
                </ext:TabPanel>
            </Items>
        </ext:Viewport>
    </body>
    </html>
  4. #4
    Hello @Z!

    So, please check from your browser when you load a page and compare with code behind, it is probably rewriting Ext.NET resources' path thus making the page not open.

    You are probably getting several 404 or 500 errors if you open developer tools' network tab as the URLs to Ext.NET resources (which are routed from Asp.NET within Ext.NET DLL) due to the page URLs' mangling from IIS. Ext.NET route is set up at App_Start\ExtNetMobileConfig.cs, if that helps.
    Fabrício Murta
    Developer & Support Expert
  5. #5
    it isnt a specific bug; rather, some EXT.net caching issue.
    That's quite strange, Ext.NET does not do any caching. It builds pages from the request IIS (or IISExpress, locally) makes.

    If you are getting issues due to the browser caching the page when it shouldn't, then you need to implement cache busting in your website. Cache busting is especially important if you also maintain your own set of CSS styling thru included files.

    Ext.NET's "init script" (a script containing the instructions to load the .aspx page you're loading) is provided always with a unique random address (it implements its own cache buster for the unique script, even through different loads of the same page, same build); a proof that it is working is that you actually get different results as you update your production website).

    Ext.NET main resource files also include cache busting, enforced every version update.

    I hope this helps!
    Fabrício Murta
    Developer & Support Expert
  6. #6
    It all works fine locally. Only a problem when we deploy it to prod.
    We have a cache buster already.
    /Z
  7. #7
    Hello @Z!

    Unfortunately I have little clue of what the problem could be.

    Maybe, is it possible for you to deploy to a temp space we could open from our side and see if we spot something wrong the server may be doing to the Ext.NET resources set up on page load?

    I believe taking your whole website offline for the sake of this demonstration is not worth as it may take hours between we reply here, you set it up on your side, and we check back to verify. So if you could post this to a temporary space -maybe- we could spot something.

    The only thing I can think of at the moment, is that the rewrite module on your website could be corrupting addresses to Ext.NET resources -- although it shouldn't be working with current Ext.NET if that was the case.
    Fabrício Murta
    Developer & Support Expert
  8. #8
    I was hoping we can do a 15 minute skype session and i can show you old. then deploy for you. and you can see the new and the problem.
    I am quite knowledgeable on EXT am this one has me stumped.
    /Z
  9. #9
    In the browser tools, check the Network tab. Are requests failing? If yes, what is the response? Is the correct (or expected) url being requested?
    Geoffrey McGill
    Founder & CEO
  10. #10
    Geoffrey,

    I am raising this up as it is a maddingly odd issue.

    On Chrome locally, there are NO issues! Everything is perfect. All items return status code 200 with no errors at all.

    it ONLY fails in production and the web.config is perfect and correct. We have been live with an working EXT.NET mobile site for 6 months now. Only this update is failing but works perfectly in Chrome locally.

    if i continually clear my cache, Andriod will eventually load. iOS never works.

    /Z
Page 1 of 3 123 LastLast

Similar Threads

  1. [CLOSED] IIS 7.5 deployment
    By tanky65 in forum 2.x Premium Help
    Replies: 4
    Last Post: Jan 25, 2013, 2:51 PM
  2. Trouble in deployment
    By fosteliss in forum 2.x Help
    Replies: 6
    Last Post: Dec 13, 2012, 8:35 PM
  3. Deployment issue
    By Sergio Majocchi in forum 1.x Help
    Replies: 2
    Last Post: Feb 08, 2012, 4:50 AM
  4. Coolite MVC Deployment
    By Mike in forum 1.x Help
    Replies: 4
    Last Post: Oct 20, 2009, 10:17 PM
  5. Deployment problem
    By romeox in forum 1.x Help
    Replies: 0
    Last Post: Jan 20, 2009, 4:17 AM

Posting Permissions