LoadRunner and XML Data with Flex 3 - apache-flex

We have a Flex app that we are trying to test with Load Runner. The application runs just fine when run stand-alone in a browser. When the app initializes, an XML properties file is loaded.
When trying to access the same application (using the same URL) with LoadRunner, a Fault occurs when trying to load the same properties file that was previously returned with no errors. The fault message is as follows:
Error Initializing Properties: faultCode:Server.Error.Request faultString:'HTTP request error' faultDetail:'Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error.
The API docs say that IOError occurs when a read / write is attempted on a socket that is disconnected. The strange thing here is that using Fiddler, I am able to verify that the entire contents of the XML file are returned. I have also verified that the URL is correct (it's an absolute URL).
Has anyone ever encountered this situation? We have been trying to resolve this for weeks now, and any help would be greatly appreciated.

Related

BizTalk HTTP adapter substituting the string "The system cannot find the file specified." into the URL - why?

I have a BizTalk send port calling an Azure Logic App using its trigger URL. The URL contains a shared access signature. This is generated by Azure. When the send port activates, it logs an error as below:
A message sent to adapter "HTTP" on send port "Send.Distribution.DHL.AS2.HTTP" with URI "https://prod-08.ukwest.logic.azure.com:443/workflows/44cc9abed61042fd90a7ea89522ead0d/triggers/manual/paths/invoke?api-version=2016-10-01&sp=The system cannot find the file specified.FtriggersThe system cannot find the file specified.FmanualThe system cannot find the file specified.Frun&sv=1.0&sig=c[signature redacted]&edi-partner=DHL" is suspended.
Error details: The remote server returned an error: (502) Bad Gateway.
MessageId: {F2450A9B-AD6E-47A3-8DD7-5AE57A2C63DD}
InstanceID: {8A58DB8B-1B70-4E28-B7D4-C2A21899375D}
Bad Gateway is fair enough, because look at the URL: it contains the string The system cannot find the file specified. several times where it should not be. This is where the escape sequence %2F is in the original URL. It looks as though BizTalk is somehow trying to interpret this particular sequence, getting it completely wrong, and substituting whatever error message comes back into the URL and then trying to call that, understandably failing. My best guess is that it thinks it's seeing a macro and trying to expand it.
This is exactly as the message is logged in the event viewer (apart from the redacted signature); I haven't made a mistake in transcribing it.
Why is BizTalk doing this, and how can I stop it?

Sudden 403 Error on Text Detection

I was working with the standard example code for the text detection API and everything was working fine, but now if I try to run the same program (no edits made) on a new image, python returns the error:
Http Error for /Users/lummish/Documents/Cloud Vision Tests/foodman.jpg
< HttpError 403 when requesting https://vision.googleapis.com/v1/images:annotate?alt=json returned "Request Issue Failed.">
Which in turn causes the following error:
AttributeError: 'NoneType' object has no attribute 'items'
I can't seem to figure out what's going on. I've tried getting a new keypair as well as cloning the project from scratch, but neither accomplished anything. Any help would be appreciated.
Have you tried running a curl request on your image to ensure your api key is valid etc

IIS 6: How can I check if server trace is enabled?

Sys.WebForms.PageRequestManagerParserErrorException: The message received
from the server could not be parsed. Common causes for this error are when the
response is modified by calls to Response.Write(), response filters, HttpModules,
or server trace is enabled.
Details: Error parsing near '
<!DOCTYPE html PUB'.
There are tons of references for this error message on the Web, but I can't figure it out. The problem is that the application works fine when I run it locally or when deployed to other servers. There is just one server where I get this error during a post back from an Update panel (it is supposed to populate and open a popup panel). There is no Response.Write() anywhere in the code and the other suggestions do not apply, either. I think. The next thing I will try is install the remote debugger. In the meantime, can someone tell me how to check if server trace is enabled (IIS 6)?
Oddly enough, this was caused by a database exception. The application framework injected the stack trace into the HTML stream, but obviously in case of an Ajax call the error should not be reported in the HTML response.

Sharepoint - Multiple document upload - HTTP 'post' verb not allowed

When attempting to upload any number of documents, including very small files, seems to succeed- but subsequently redirects to an error page indicating the following:
/_layouts/error.aspx?ErrorText=The%20HTTP%20verb%20POST%20used%20to%20access%20path%20%27%2F%5Fvti%5Fbin%2Fshtml%2Edll%2FSiteCollectionDocuments%2FForms%2FUpload%2Easpx%27%20is%20not%20allowed%2E
The HTTP verb POST used to access path '/_vti_bin/shtml.dll/SiteCollectionDocuments/Forms/Upload.aspx' is not allowed.
Any ideas as to why HTTP POST would be denied for this operation?
Update:
Navigating directly to /_vti_bin/shtml.dll/SiteCollectionDocuments/Forms/Upload.aspx gives:
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
An invalid character was found in text content. Error processing resource 'http://sitename/...
MZ
Error in event log looks like this:
Critical error has occured but the exception object has already been cleared
Current Url: /_vti_bin/shtml.dll/SiteCollectionDocuments/Forms/Upload.aspx
User Login: xxxxxxx
User is Authenticated: True
Performance Counters
% Processor Time Total: 0
Processor Queue Length: 1
ASP.NET Request Queued Total: 1
.NET CLR Exceptions, # of Exceps Thrown: 55
PATH_INFO: /_vti_bin/shtml.dll/SiteCollectionDocuments/Forms/Upload.aspx
PATH_TRANSLATED: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\isapi\shtml.dll
The solution turned out to be removing the wildcard application mapping in IIS.
The url which receives the document upload via HTTP POST /_vti_bin/shtml.dll/SiteCollectionDocuments/Forms/Upload.aspx was being incorrectly mapped to C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll and thus failing.
Update:
This solution tended to break other functionality, such as document deletion, and was scrapped during testing.
As it turns out, there was an HTTP module that was causing this url to be processed incorrectly. I added a bypass for /_vti_bin/shtml.dll/SiteCollectionDocuments/Forms/Upload.aspx and this solved the issue with no side effects.
The supported methods of uploading documents to SharePoint are:
Using web services (extensive example here)
Using RPC (example here)
Using the object model (example here)
Are you able to use one of these methods? If not can you please edit your question with more information about why and some sample code?
A guess at why the HTTP POST method isn't working is probably because it's for internal SharePoint use only.

Flex: HTTP request error #2032

In Flex 3 application I use HTTPService class to make requests to the server:
var http:HTTPService = new HTTPService();
http.method = 'POST';
http.url = hostUrl;
http.resultFormat = 'e4x';
http.addEventListener(ResultEvent.RESULT, ...);
http.addEventListener(FaultEvent.FAULT, ...);
http.send(params);
The application has Comet-architecture. So it makes long running requests. While waiting a response for this request, other requests can be made concurrently.
The application works in most cases. But sometimes some clients get HTTP request error executing long running request:
faultCode:Server.Error.Request
faultString:'HTTP request error'
faultDetail:'Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]. URL: http://example.com/ws'
I think it depends on user's browser.
Any ideas?
I experienced the same problem when I sent longer (3-4K!) parameter in HttpRequest. As soon as I sent smaller ones it worked (without refresh, reload or anything). I do not know if there is a limit on client side or on web server side of the length of parameters you can send but definitely this causes the issue.
url limitations may cause it
This error appears very generic and I would suggest trying to collect more information and sharing it regarding the issue.
This post appears similar to your situation.
This post might help you find more debugging information which would be helpful.
Which clients are affected?
Can you capture the http status code or the traffic being sent using Charles, Wireshark, or similar?
Try listening for the HTTP-status of the request, using flash.events.HTTPStatusEvent.HTTP_STATUS
That might give you some more info about what's going wrong.
I was going to open another question on essentially the same topic, but I figure two unanswered questions is worse than 1.
I get a similar intermittent issue from some users of a Flex application we have, but with some slightly different symptoms. The full range of information I can provide is:
It occurs on short (10ms) requests as well.
It appears to occur randomly.
The connection is over SSL.
It only occurs for users of IE, not for users using FireFox.
Once it occurs, users inform me they need to shut down IE and restart it (some users say they need to reboot, but I think that's less likely than just an IE restart). It appears to require a few minutes to reset itself.
It does not appear to affect the rest of the user's internet connection -they can continue to use other IE windows.
Once it occurs, it appears that no HTTPService request from the flex application will work.
It occurs (apparently) only for a small subset of users. Initially it
seemed to be due to their physical distance from the main server, but this no longer
appears to be necessarily the case (though it could be connection quality).
I'm not clear on what version of Adobe Flash the users are running.
Code was built with Adobe Flex 3.4 (linux)
The application does a wide range of requests, many in parallel though I've not been able to reproduce the problem.
Users do suggest this error occurs after they have come back to the application after a few minutes.
There appears to be no related server side request entry in the server logs, suggesting the request never reaches the server (possibly never leaving the client).
The server responds to all requests with the relevant cache headers to turn of IE caching.
The current workaround we have is to request users run the application in FireFox.
Full dump of the error is:
HTTP Status Code: null
Fault Code: Server.Error.Request
Fault Error ID: null
Fault Detail: Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]. URL: https://my.server/url
Fault String: HTTP request error
Fault Name: Error
Fault Message: faultCode:Server.Error.Request faultString:'HTTP request error' faultDetail:'Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]. URL: https://my.server/url'
Root Cause: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]
Many people have mentioned error 2032, a few even mentioning intermittent errors under IE only, but there are no mentions of the solution. If I ever find one, I'll update my post here.
Update
After talking to a user as this occurred, we found the following:
The user could open a new tab in IE, and load the same flex application up fine - so no internet connectivity problems.
The user could, in the tab with the flex app where the error occurs, load up google.com - so there appears to be no connectivity issue related to that specific tab.
The user could copy the address from the tab with the broken app into another tab, and the flex application would load.
The user could, after loading google.com in the tab where the flex app broke, copy in the flex app URL again, and immediately get the problem.
It appears that in my particular application, my flex app manages to break the flash plugin/VM to such an extent that after the break, no further requests to the URL are allowed.
I am so completely stumped by this I'm at the point of suggesting users use FireFox, or wrapping the application in an Air package.
I had somewhat the same problem here but with a Flash (Web - Flex 4.1 SDK) application.
after trying out a huge assortment of solutions we narrowed we finally came up with one that works pretty reliably for all systems, including newly installed machines.
A. add global event listeners at the root (or stage) of the application, on flex preinitialize stage.
IOErrorEvent.IO_ERROR
IOErrorEvent.NETWORK_ERROR
HTTPStatusEvent.HTTP_STATUS
ErrorEvent.ERROR
SecurityErrorEvent.SECURITY_ERROR
if an error is cought - event.preventDefault();
B. add event listeners on every loader used in the App for the following errors:
IOErrorEvent.IO_ERROR
SecurityErrorEvent.SECURITY_ERROR
HTTPStatusEvent.HTTP_STATUS
*to attempt recovery, like falling back to an external interface call...
C. place all the SWZ files from the bin-release folder together with the SWF file in the same path on the server you use to deliver your App.
in my case these are the files needed:
sparkskins_4.5.1.21328.swz
spark_4.5.1.21328.swz
textLayout_2.0.0.232.swz
rpc_4.5.1.21328.swz
osmf_1.0.0.16316.swz
framework_4.5.1.21328.swz
* to discover this i used Chrome developer console to see which errors occur on the page and discovered a chain of 404s when the app tries to download these files.
D. have a properly configured crossdomain.xml policy file which includes the allow http request xml tag.
<allow-http-request-headers-from domain="*" headers="*"/>
replace the * as needed in your particular case.
Cheers
Sounds like you might have more connections going out then the browser supports. Do you know exactly how many open connections exist at the time of the error?
Different browser allow different numbers of simultaneous open connections. IE 6,7,8 all allow different amounts: http://support.microsoft.com/kb/282402
Firefox: http://www.speedguide.net/faq_in_q.php?qid=231
I've had this exact issue happening in my Air app. I eventually realized that I had accidentally set the urlrequest.idleTimeout to 10. This timeout is actually in milliseconds and my webserver is local, so if I sent no parameters (no get or post) to my local server it would work. Whenever I sent any parameters along with the request of course it would fail because my script took longer than 10ms to run and return the data.
You may want to pay attention to slow loading scripts. You can debug by just forcing some static output and then stop that page from executing further. In my php page I put:
<?php
echo "hello=hi";
die();
?>
Also, make sure to debug it within the sandbox limitations. I am using a self-signed ssl cert and there are a lot of warnings when trying to connect to my local test webserver.
Hope that helps!

Resources