Archived Forum Post

Index of archived forum posts

Question:

AccessViolationException on HTTP module

May 15 '15 at 07:11

I'm using 9.5.0.39 and sometimes I get this exception:

{"Attempted to read or write protected memory. This is often an indication that other memory is corrupt."} System.Exception {System.AccessViolationException}

This is on the http module.


Answer

If a crash within Chilkat is suspected, then set the DebugLogFilePath property equal to the path of a log file that should be produced. Also, turn on verbose logging by setting the VerboseLogging property = true.

The DebugLogFilePath property, when set, will cause each Chilkat method call to log everything that would go to the LastErrorText, to also be logged to the file (on a line-by-line basis with no buffering, so that if a crash occurs, then we'll see the very last bit of what was happening).

The DebugLogFilePath always appends to the log file if it already exists. One good strategy for debugging is to first identify the Chilkat method call suspected of crashing. Then, just before that call, make sure the log file is deleted, and set the DebugLogFilePath property. Just after the Chilkat method call, clear the DebugLogFilePath property because there is no need to clutter it with unnecessary information.

If the crash occurs within the Chilkat method call, what remains is an uncompleted verbose LastErrorText in the log file. This can then be sent to support@chilkatsoft.com for analysis.

Please remember to turn on VerboseLogging to get verbose information.

Also: When verbose logging is on, take care to examine the log file for any sensitive application data (such as a password) that might be present. Remove these if needed.


Answer

It seems to be related to HttpResponse.

I was reusing reponse like this:

public class Hello() {

HttpResponse response;

private void Firstmethod() { 
response = _http.SynchronousRequest(Domain, Port, Ssl, req); }

private void Secondmethod() { 
response = _http.SynchronousRequest(Domain, Port, Ssl, req); }

}

Seems like I should reinitialize HttpResponse everytime instead like this:

HttpResponse response = _http.SynchronousRequest(Domain, Port, Ssl, req);

Is that correct?


Answer

I just tested with:

HttpResponse response = _http.SynchronousRequest(Domain, Port, Ssl, req);

I still have the same problem. I will now test the logging that you advised of.


Answer

news about this issue?


Answer

This is likely solved in v9.5.0.49