Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Problem with ViewLoader on windows 2008 R2

    Hi there,

    I developped an aplication using SmartClient 7 that uses viewloader to fetch forms from the server. The application was developed on Windows XP and tested there and I had no problem with ViewLoader. I did the same at the test server which is running Windows 2003. Again no problem, but when I uploaded it to Production Server which is Windows 2008 R2 with IIS 7.5, ViewLoader started returning HTTP Error 400. It does the same thing when the site is viewed from another computer in the domain. So now I'm confused. I checked and doublechecked the virtual directories, I even gave Full control permission to Everyone to all the directories and still no luck. This is rather urgent so please respond ASAP.
    here is the contents of the developer console:
    Code:
    12:32:47.490:XRP1:WARN:Log:Error:
    	'Expected ';''
    	in http://localhost/rodiab/
    	at line 1
        Class.globalEvalWithCapture(_1=>"Transport error - HTTP code: 400 for URL..."[61], _2=>anonymous(), _3=>Obj, _4=>undef)
        ViewLoader.$40p(_1=>Obj, _2=>Obj, _3=>"Transport error - HTTP code: 400 for URL..."[61])
        callback(rpcResponse=>Obj, data=>"Transport error - HTTP code: 400 for URL..."[61], rpcRequest=>Obj)
            "
    if(window.isc_FormLoader_759)isc_FormLoader_759.$40p(rpcRequest, rpcResponse, data)
    "
        Class.fireCallback(_1=>"if(window.isc_FormLoader_759)isc_FormLoa..."[83], _2=>"rpcResponse,data,rpcRequest", _3=>Array[3], _4=>[RPCManager ID:builtinApplication], _5=>undef) on [Class Class]
        Class.fireCallback(_1=>"if(window.isc_FormLoader_759)isc_FormLoa..."[83], _2=>"rpcResponse,data,rpcRequest", _3=>Array[3], _4=>undef)
            "return isc.Class.fireCallback(_1,_2,_3,this,_4)"
        RPCManager.fireReplyCallback(_1=>"if(window.isc_FormLoader_759)isc_FormLoa..."[83], _2=>Obj, _3=>Obj, _4=>"Transport error - HTTP code: 400 for URL..."[61])
        RPCManager.fireReplyCallbacks(_1=>Obj, _2=>Obj)
        RPCManager.performOperationReply(_1=>Obj, _2=>Obj)
        RPCManager.$39d(_1=>4)
        RPCManager.performTransactionReply(_1=>4, _2=>Array[1], _3=>undef)
        callback(transactionNum=>4, results=>Obj, wd=>undef)
            "
    isc.RPCManager.performTransactionReply(transactionNum,results,wd)
    "
        ** recursed on Class.fireCallback
    
    12:32:47.505:XRP1:WARN:Log:[object Error]
    12:32:47.505:XRP1:WARN:Log:firing the callback from global eval with...
    12:32:47.521:XRP1:WARN:Log:viewLoader is:[FormLoader ID:isc_FormLoader_759]
    Here is the code for the inherited ViewLoader that is used:
    Code:
    isc.ClassFactory.defineClass("FormLoader", "ViewLoader");
    
    isc.FormLoader.addProperties({
        onLoad: null,
        viewLoaded: function(view)
        {
            view.initialize(this.target, this.toolstrip, this.header);
            if (this.onLoad != null)
                this.onLoad(view);
        },
        handleError: function(rpcRequest, rpcResponse)
        {
            isc.warn("Greška!<br><br>Status: " + rpcResponse.status + "<br>Http kod: " + rpcResponse.httpResponseCode);
        }
    })
    and here is the code whic calls the loader:
    Code:
                                p._loader = FormLoader.create({
                                    xwidth: '100%',
                                    height: AItem.Height,
                                    autoDraw: false,
                                    loadingMessage: '',
                                    target: bbrMain,
                                    toolstrip: p._toolbar,
                                    header: lblHeader,
                                    showConnectors: true,
                                    onLoad: function(view) { lytMain.viewLoaded(view); },
                                    viewURL: "Controls/" + AItem.Action + ".js"
                                });
    And I repeat. It's not due to the code, because the thing works perfectly on my local machine and test server.

    Thanks in advance

    Goran Mumelas

    #2
    I've managed to write a simple site that contains only two files index.html and pero.js. Here is the code:
    index.html:
    Code:
    <HTML><HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250" />
    <SCRIPT>
    </SCRIPT>
    <SCRIPT>window.isomorphicDir = 'isomorphic/';</SCRIPT>
    <SCRIPT SRC=isomorphic/system/development/ISC_FileLoader.js></SCRIPT>
    <SCRIPT SRC=isomorphic/system/development/ISC_Core.js></SCRIPT>
    <SCRIPT SRC=isomorphic/system/development/ISC_Foundation.js></SCRIPT>
    <SCRIPT SRC=isomorphic/system/development/ISC_Containers.js></SCRIPT>
    <SCRIPT SRC=isomorphic/system/development/ISC_Grids.js></SCRIPT>
    <SCRIPT SRC=isomorphic/system/development/ISC_Forms.js></SCRIPT>
    <SCRIPT SRC=isomorphic/system/development/ISC_DataBinding.js></SCRIPT>
    <SCRIPT SRC=isomorphic/skins/SmartClient/load_skin.js></SCRIPT>
    <body>
    <script>
    	isc.ViewLoader.create({
    		viewURL: "pero.js"
    	});
    	
    </script>
    
    </BODY></HTML>
    and pero.js:
    Code:
    isc.DynamicForm.create
    (
        {
            ID: 'PeroForm'
            fields: [
            	{ title: "pero" }
            ]
        }
    );
    Guess what the response is:
    Transport error - HTTP code: 400 for URL: pero.js.

    Running the same thing on my local machine yiends no error

    This is very urgent matter so I would kindly ask for a quick reply.

    Comment


      #3
      Well thanks a lot for your "quick" response. You just cost me my job...

      Comment


        #4
        Looks like you put your trust in the wrong place. The ViewLoader is not server-based and your problem was with the server, not SC.

        Comment


          #5
          actually you would have to explain this to me, because I don't see any "server based" code for a view loader. What I posted in my second message is a simple example of viewloader usage. the simplest there is, and yet it is still not working on Windows 2008 R2. I don't recall isomorphic issuing any disclaimer that SC is not working properly on Windows 2008 R2. And besides since they claim that the product is multi-platform, they should have tested it on Windows 2008 R2.
          A collegue of mine did some research and reverse engineering on the problem and concluded that it was a problem with the date in the http header that was sent from inside of isomorphic code. When he changed the date it all started working, so you tell me how is this not SC issue?
          I on the other hand believe that if you payed for the product that you don't need to reverse engineer the problem inside that product, but that you are in title to receive the solution from the product manufacturer.
          If your TV gets broken within the warranty, you get a new TV, or you are in title to receive a service free of charge that will fix the problem. You don't have to open it up and fix it yourself, to be able to watch it again.
          Proove me wrong.
          Last edited by Mummy; 25 Jun 2011, 18:13.

          Comment


            #6
            Wow. I didn't realize I needed to prove you wrong and I didn't see the notes about changing dates making things work in your previous postings.

            So, if the client works against various server products and you change a server product and things stop working the most logical issue is with what changed - in this case the server. (just for the record I'm not saying that is the only possibility only the most likely)

            I guess what you are saying is that the MS product is not broken but the Isomorphic one is but you offer no evidence except that it works in your test environment but not on 2008 R2. Interesting that both are MS products. Could it be that the new server has a different configuration and is not serving the requested file correctly? No, that couldn't be the problem.

            I considered not posting a response in the first place because of the attitude of your posts and I guess my first impression was right - I really shouldn't have weighed in...

            You might try with the latest SC 8 to see what happens there or try another browser. Otherwise maybe you can check your server logs to see why it is responding with a 400 error. Good luck.

            Comment


              #7
              I am not sure what you meant by "my attitude in previous posts" because considering that the huge project was on the line because of that problem, I think my first two posts were very polite. I was merely asking for help. You dare saying that I have an attitude considering I snapped because loosing a job over a problem that was not my mistake? That's an attitude to avoid. Bare in mind that it has now gone more than 4 weeks since I posted the issue and got no reply at all from isomorphic. Not even a "bare with us we are working on it" kind of reply.

              But as I said, a collegue of mine CHANGED THE ISOMORPHIC CODE and made the thing work. So, if changing isomorphic code yields result, I don't see how this is a Microsoft issue. I really don't. And why should I care whose problem it is? My firm bought an Isomorphic product that is declared to be multi-platform, so I expect the damn thing to work. Bottom line is: "if it is multi platform it should have worked on all platforms. If there is a platform it doesn't work on a warning should have been issued to avoid that platform until it is supported". And it's not like Windows 2008 was released a month ago. If it were it would probably be called Windows 2011, or 2010 at least. Do you think that our customer cared whether it is SC or MS problem? Of course they don't. They expected the application to work.

              What you are basically saying is that if you buy an all terrain vehicle that wouldn't drive on the grass, that is your problem, because you changed the terrain to grass. Or even worse the terrain's problem because the terrain dares to be grassy. It doesn't matter that you bought an all terain vehicle? Or you think that "all terrain vehicle" actually means "most terrains vehicle, but some not just because we didn't test the thing on actually all terrains, or couldn't be bothered to issue a warning not to drive the vehicle on grass". God forbid that it is a manufacturers fault because they never tried to drive the vehicle on the grass before they sold it to you. I'm not sure if that is silly or stupid.

              And you are right. You probably shouldn't have posted a response considering you have nothing to write that's worth reading. And after all, it is not you who lost a job, and it's not your company that had to pay penalty because of it, so you might as well write anything just to say it's not a SC fault. How much are they paying you? I'd like a job like that too.

              If this is your idea of help, please don't help anyone else...

              And now you can say I have an attitude...
              Last edited by Mummy; 29 Jun 2011, 23:59.

              Comment


                #8
                Mummy, you posted a test case which obviously works in the SDK, and obviously works for a wide variety of people, and said it doesn't work on one particular server environment where you aren't even using our server technology.

                You didn't specify that the server being tested was a default install with no code added or anything of the kind. So of course this looks like a misconfigured server and your post was ignored. If you decline to purchase support, you need to make a very clear case that you've found a bug, and your posts failed to do this.

                If you still think there's a SmartClient bug here and you think you have proof, no need to rant about refrigerators and ATVs or embarrass yourself by berating one of our most prominent and helpful community members - just post the changes that were made and an explanation of why you think this is a SmartClient bug rather than just a workaround for broken server code.

                Comment


                  #9
                  Oh, I'm sorry. You see I am not form an english speaking contry so I probably misunderstood the meaning of the word "default". Up until now I was sure it denoted something that is understandable and does not have to be specified separately.
                  Maybe I should have scanned the bar code from the Windows box and post it here. Upon that I probably should have written the serial number as well as product key in hope to get a "technical support" arround here. Or perhaps I misunderstood the meaning of that term as well.
                  Well since you mentioned "embarrasment", that is one word I am sure I understand correctly. It perfectly describes your idea of "technical support", as well as your choice of "prominent community member".
                  If you needed more info on the issue you could have said so before you got me fired, instead of ignoring my post, and now you expect me to post the changes? Give me one good reason why I should. On the second thought don't, I am not planning on reading any more of your responsibility avoiding replies anyway.
                  I just hope that other users will not have the same "technical support" expirience as I did.
                  On the other hand, as there's always something good in a bad, me getting fire did result in something good, and that is the fact that I'll never have to rely on your "technical support" again.
                  Thanks for less than nothing...
                  Last edited by Mummy; 24 Aug 2011, 19:13.

                  Comment


                    #10
                    Our support continues to receive a steady stream of compliments and kudos, but, as we explained before:

                    If you decline to purchase support, you need to make a very clear case that you've found a bug, and your posts failed to do this.

                    Comment

                    Working...
                    X