I'm working with a Flex 4 application (MXML and ActionScript front-end using BlazeDS and Java back-end) and I am trying to find the origin of an error.
The user sometimes (maybe once a week) gets a pop-up window with "RPC Error" in their web browser. If they retry the operation, they get the same error. Restarting the browser or maybe just reloading the page makes the error go away. Looking in the server log, I don't see any error on the server side. How can I figure out the cause of the RPC error? Can I configure some setting in the browser or Flash player to get additional info?
Thanks for any ideas. I've searched the web & some forums including SO but I've come up empty-handed.
Edit: in this case it appears the problem was loss of the network connection (user was connected via cell modem). I'm still interested in any ideas about how to troubleshoot this problem.
I like to do my development in Firefox and using Firebug as a console. When the Flex app starts, open up Firebug and look at the Net tab. It will bring up all the RPC calls made while Flex is initializing, which can be very useful for these kinds of bugs.
Related
Intermittently, my team's (overweight) VS2010 solution fails to load in the debugger. We get informed that "The web server did not respond in a timely manner".
Workarounds for when this happens:
Build, then debug (but not hitting F5 before building)
IIS Reset
Killing other apps, or closing extra open tabs in my other browser (debugging in IE, browsing stuff/keeping Gmail open in Opera)
Is there a registry key we could set that would make the response timeout longer, or similar?
I've found the hint of an answer here:
There are registry keys that control timeouts for VS's debugger. As these are generally not documented, it's a matter of trial and error from here.
So far I've been toying with HKCU\Software\Microsoft\VisualStudio\(version number)\Debugger\ScriptDocsTimeout
I'm a C++ programmer, but I'm a newbie in Flex. I'm developing a Flex 3 application for a social network using the FlashDevelop. For debugging I'm using the stand-alone FlashPlayer (10.3 debug) downloaded from Adobe. The application is a simple audio player which shows artist/album images.
The application worked properly on both local computer and remote server until I made some layout changes in Main.mxml. I added some HBoxes and changed Image placement. After that the application still works on my local computer, but it doesn't work properly after I upload it to a server.
Application buttons are not highlighted on over/out/click events, images loaded from the Internet are not displayed, text changed dynamically is not displayed, but when I click buttons a sound file is loaded from the internet and starts playing. It looks like some events which are responsible for components displaying are not dispatched, because some part of functionality not related to displaying still works.
To make sure that this is not a server problem, I rolled back to the previous revision. All works fine.
I suppose that this is a known issue, but I have no idea what is the reason.
Could anyone please help me to resolve the issue?
Thanks.
UDP: I observed the issue in IE and FF, I didn't test Opera and Chrome.
Are you tying to access the pixel data of the images in the new version? If so, that might be the problem, as pixel data for loaded images is not (always) accessible so that might throw a security error, which in turns breaks the rest of the interface.
Also, did you try running the remote version in the debugger? If so, is there any exception being thrown?
And no, it's not a known issue, it's the kind of annoying and hard to debug error that you sometime get when using the Flex SDK.
I'm trying to use EQATEC Profiler to profile my ASP.Net app. I followed the instructions listed here. It worked the first time, but every since then, when I run my app, I don't get a "Profiled app started" message. Then when I click on the "Take snapshot" button, I get the following:
"Taking snapshot ...failed: The remote server returned an error: (404) Not Found."
Why can't it find my app?
If a profiled app encounters errors it will log these to the profiler.log file. By default you will find this in C:\Windows\Temp\EQATECProfilerLogs. Try to see if it holds some clues. You can also try to enable "Full logging" in the app options, which will at least output something to the log.
A profiled app is actually the "server" when talking to the profiler; it is the profiler that connects to the app, not the other way around. In your case it seems that the old app has stopped listening (otherwise the profiler's attempt to connect would simply be served by the old app), but the new app has not (could not?) started listening.
It seems strange, though, so my best suggestion is to examine the log-file. It will e.g. show if the app could not start its control-server and if so, why not.
1) Try rebuilding (in Equatec) your application. Make sure "enable runtime control" is enabled in the application options when you build.
1a) Try changing the port being used for runtime control.
2) Run your application through Equatec
3) Check if you have anything funny for firewall settings or similar. Some firewalls treat Equatec communication as traffic to be blocked.
4. If all else fails, just close your application normally. Even if taking snapshots fails, you can still see the profile once your application is closed.
Guess I should provide an update on this. The error was resolved once I downloaded the latest version.
I need to disable flash from showing these error messages when an error occurs. I am completely aware of the error I'm receiving, and it does not cause my application from working correctly. I simply need to disable these messages. Is there a setting in flash or a flex compiler command or something? Thanks, David.
There are a lot of things you can do with your mm.cfg file (google it's usage)
For instance if you put:
SuppressDebuggerExceptionDialogs=1
In there it will prevent the debugger version of flash from popping up error windows in your browser.
No, unfortunately there's no such thing. Though, the errors will not be displayed to users that have the release version of the flash player installed, and not the debugger one.
There's a very hot feature request for the flash player but the implementation seems far from happening: Ability to intercept system error dialogs. There are a lot of comments some heated, some sarcastic but Adobe seems to still ignore this issue.
UPDATE
The feature has since been implemented. Last comment says:
This has been fixed with Flash player 10.1
http://labs.adobe.com/technologies/flashplayer10/features.html
Global error handler The new global error handler enables developers
to write a single handler to process all runtime errors that were not
part of a try/catch statement. Improve application reliability and
user experience by catching and handling unexpected runtime errors and
present custom error messages. When using the global error handler in
a SWF running in the debug player, error pop-ups will not be shown.
I'm having an issue with a Flash/Flex erroring in Firefox but not IE. I need to see the error that the Flash/Flex app is getting from the ASP.NET app. Is there any way to debug the response that Flash/Flex is getting?
Install the Debug version of the FlashPlayer for Firefox. Maybe this is already enough and an Error might pop up.
If not use the FlexBuilder and debug the Flex application. If you don't have a license for the FlexBuilder you may also use the Evaluation licence.
Remember that you can also observe the network traffic from firebug, even for flash apps.
Depending on how you are making calls to your ASP.net app - you could use something like LiveHTTPHeaders to see the url that your flex app is call and see what response is being sent back from the server (i.e. 200, 404, 503, etc...)
Also - you could use something like Charles to do the same thing but actually see the full response from the server (be it images, text, xml...) and not just the header info.