Archived Forum PostQuestion:
I'm seeing multiple "First-chance" exceptions as soon as I call CkHttpW::quickGetStr as shown below:
First-chance exception at 0x7511C41F (KernelBase.dll) in GRIB2Test.exe: 0x000006BA: The RPC server is unavailable.
The routine appears to work just fine though and returns the HTTP response string. Is there a way to avoid causing the First-chance exceptions in the first place?
Essentially all I'm doing is unlocking the CkHttp component then calling the following:
CkHttpW http;
const wchar_t * html;
html = http.quickGetStr(_T("http://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/"));
That's when the First-chance exceptions pop up.
Thanks, Phil
I would recommend first testing with the pre-release of v9.5.0. Please indicate your operating system, VC++ version, etc., and I will post a download link here..
I'm using VC++ 2012 on Win7-64 system with Chilkat 9.42 pre-release (9.41 had a bug in CkFtp2 that 9.42 fixed). I've also noticed that CkHttpProgress::PercentDone is not being called in the 9.42 pre-release it appears. If you could get me a link for the 9.50 pre-release, I'd be glad to try it.
Thanks, Phil
Please try this new build:
32-bit: http://www.chilkatsoft.com/preRelease/chilkat-9.5.0-x86-vc11.zip
64-bit: http://www.chilkatsoft.com/preRelease/chilkat-9.5.0-x86_64-vc11.zip
I tried the pre-release 9.5.0 x86 library and it did not help. I'm not really doing much so it should be easy for you to reproduce. After unlocking CkHttp, I just do this:
CkHttpW http;
const wchar_t * html;
http.put_FetchFromCache(FALSE); // Do NOT use cache
html = http.quickGetStr(_T("http://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/"));
Immediately after the quickGetStr call, I get the following in the Output window (my app is BalloonTest.exe):
First-chance exception at 0x7509C41F (KernelBase.dll) in BalloonTest.exe: 0x000006BA: The RPC server is unavailable.
First-chance exception at 0x7509C41F (KernelBase.dll) in BalloonTest.exe: 0x000006BA: The RPC server is unavailable.
'BalloonTest.exe' (Win32): Loaded 'C:WindowsSysWOW64rasadhlp.dll'. Cannot find or open the PDB file.
First-chance exception at 0x7509C41F (KernelBase.dll) in BalloonTest.exe: 0x000006BA: The RPC server is unavailable.
First-chance exception at 0x7509C41F (KernelBase.dll) in BalloonTest.exe: 0x000006BA: The RPC server is unavailable.
'BalloonTest.exe' (Win32): Loaded 'C:WindowsSysWOW64FWPUCLNT.DLL'. Cannot find or open the PDB file.
Is there anything else you'd like me to try?
Phil
Thanks, I'll give it a try..
I'll just toss out another thing I see when downloading a file and showing the download progress using CkHttpProgressW. PercentDone() is never called. I saw in another post that you all were going to go through all the PercentDone routines for everything to verify them so I just wanted to let you know that with 9.50 pre-release it seems it's still not being called for CkHttpProgressW.
Phil
I did not get a crash. Here's my test code:
bool HttpTesting::testWideCharGet(void)
{
CkHttpW http;
const wchar_t * html;
http.put_FetchFromCache(false); // Do NOT use cache
html = http.quickGetStr((L"http://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/"));
CkString lastErr;
http.get_LastErrorText(lastErr);
printf("%s\n",lastErr.getString());
return true;
}
Here is my LastErrorText:
ChilkatLog:
QuickGetStr:
DllDate: Feb 19 2014
ChilkatVersion: 9.5.0.14
UnlockPrefix: UNTTSTHttp
Username: CHILKAT13:Matt
Architecture: Little Endian; 32-bit
Language: Visual C++ 11.0 (32-bit)
VerboseLogging: 0
httpRequestStr:
a_quickReq:
quickHttpRequest:
httpVerb: GET
url: http://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/
buildQuickRequest:
genStartLine:
startLine: GET /pub/data/nccf/com/gfs/prod/ HTTP/1.1
--genStartLine
addCookies:
Not auto-adding cookies.
--addCookies
--buildQuickRequest
openHttpConnection:
Opening connection to HTTP server.
hostname: nomads.ncep.noaa.gov
port: 80
ssl: 0
connectElapsedMs: 235
HTTP connection succeeded.
--openHttpConnection
sendRequestHeader:
sendHeaderElapsedMs: 0
--sendRequestHeader
statusCode: 200
statusText: OK
readResponseBody:
contentLength: 12792
--readResponseBody
--quickHttpRequest
--a_quickReq
convertResponseBodyToUtf8:
responseBodySize: 12792
responseContentType: text/html;charset=ISO-8859-1
responseHdrCharset: ISO-8859-1
Converting to utf-8 charset.
fromCodePage: 28591
--convertResponseBodyToUtf8
--httpRequestStr
Success.
--QuickGetStr
--ChilkatLog
It's not "crashing" for me. It just throws the First-chance exception. Everything seems to function just fine. I added the get_LastErrorText and this is what it had:
ChilkatLog:
QuickGetStr:
DllDate: Feb 18 2014
ChilkatVersion: 9.5.0.14
UnlockPrefix: npirasHttp
Username: DELL-XPS:Phil
Architecture: Little Endian; 32-bit
Language: Visual C++ 11.0 (32-bit)
VerboseLogging: 0
httpRequestStr:
a_quickReq:
quickHttpRequest:
httpVerb: GET
url: http://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/
buildQuickRequest:
genStartLine:
startLine: GET /pub/data/nccf/com/gfs/prod/ HTTP/1.1
--genStartLine
addCookies:
Not auto-adding cookies.
--addCookies
--buildQuickRequest
openHttpConnection:
Opening connection to HTTP server.
hostname: nomads.ncep.noaa.gov
port: 80
ssl: 0
connectElapsedMs: 234
HTTP connection succeeded.
--openHttpConnection
sendRequestHeader:
sendHeaderElapsedMs: 0
First-chance exceptions are just indications that something isn't right but it doesn't necessarily cause a crash. But it's something that shouldn't be happening. Is there something else you can think of that maybe is conflicting with the CkLibs that I need to check?
I do not get any First-Chance exceptions either.
Google the error message, without the specific words that wouldn't match anything. For example, Google this:
First-chance exception at (KernelBase.dll) in 0x000006BA: The RPC server is unavailable.