[python-win32] calling a dll after python 2.3 pywin32-208

Mark Hammond skippy.hammond at gmail.com
Sun May 20 09:04:08 CEST 2012


On 20/05/2012 1:22 AM, EdShallow wrote:
> Hi Mark,
>
>       After much more testing here is some more to go on:
>
> Background again:
> - I have a VisualBasic-generated ActiveX COM object called
> capiCrypto.clsCrypto
> - I call it like this
>          clsCrypto = win32com.client.Dispatch("capiCrypto.clsCrypto")
>          clsCrypto.InStringBuffer = newCert
>          clsCrypto.CRLFileName = self.Request.FqdnCRL
>          result = clsCrypto.CheckCertBufferAgainstCRLFile()
> - it was generated on WinXP SP2
> - It can successfully be called from Python 2.3 win32-208 without problem
> - As soon as I upgrade to Python 2.7 I get this stack trace without
> touching the dll or its registration
> 2012/05/19 10:18:12  INFO Traceback (most recent call last):
>    File "cherrypy\_cphttptools.pyo", line 271, in run
>    File "cherrypy\_cphttptools.pyo", line 502, in main
>    File "checkcertcrld.pyw", line 113, in crlHandler
>    File "CrlDispatch.pyo", line 121, in handle
>    File "CheckCertCrl.pyo", line 38, in execute
>    File "<COMObject capiCrypto.clsCrypto>", line 3, in
> CheckCertBufferAgainstCRLFile
> com_error: (-2147417851, 'The server threw an exception.', None, None)
>
> Now here is some strange feedback . . .
> - Knowing that everything was OK with Python 2.3, I isolated the above code
> in its own HTTP process and py2exe'ed it thinking py2exe would preserve the
> whole 2.3 call environment
> - My thought was I would call the HTTP daemon which was packaged with 2.3
> and 208 from my 2.7 environment both in their own py2exe-created exe's one
> in 2.7 the other in 2.3
> - So check this, the very first call to the dll in the 2.3 exe from the 2.7
> exe worked !!! Then all successive calls failed ????

So you have a Python 2.3 process that accepts incoming http connections 
and calls the crypto DLL, and it fails after making one call?  So it 
should be possible to reproduce the problem in your 2.3 environment by 
simulating the incoming http connection and get the same behaviour?  And 
are you sure this isn't the same thing you are seeing with 2.7 - one 
successful call then failure?  (You didn't mention what version of 
pywin32 you were using with 2.7, which could be useful info.)

I'm afraid it just sounds like a problem with the other DLL though. 
pywin32 still has a test case against a vb6 dll, so it doesn't seem a 
generic problem.  I'd try asking them for some help diagnosing this...

Cheers,

Mark

> - here is the log:
>
> 2012/05/19 08:53:28  INFO CheckCertCRL completed with TransactionStatus
> ===> 1763 and TransactionStatusString ==> Certificate Revocation Check
> failed  Current time is NOT within the CRL validity period
>
> 2012/05/19 10:18:12 HTTP INFO 127.0.0.1 - POST /crlHandler HTTP/1.1
> 2012/05/19 10:18:12  INFO Traceback (most recent call last):
>    File "cherrypy\_cphttptools.pyo", line 271, in run
>    File "cherrypy\_cphttptools.pyo", line 502, in main
>    File "checkcertcrld.pyw", line 113, in crlHandler
>    File "CrlDispatch.pyo", line 121, in handle
>    File "CheckCertCrl.pyo", line 38, in execute
>    File "<COMObject capiCrypto.clsCrypto>", line 3, in
> CheckCertBufferAgainstCRLFile
> com_error: (-2147417851, 'The server threw an exception.', None, None)
>
> - Note the first call which successfully checked the revocation status of a
> certificate and returned a 1763 indicating a successful call to the COM dll
> (although the cert check failed)
> - Every subsequent time I called the dll it fails ???
> - Something happened in the environment after the first call and I have no
> clue ???
>
> Ed
>
>
> On Mon, May 14, 2012 at 8:50 AM, Mark Hammond <mhammond at skippinet.com.au>wrote:
>
>> [re-adding python-win32 - please keep replies on list]
>>
>>
>> On 14/05/2012 10:39 PM, EdShallow wrote:
>>
>>> Hi Mark,
>>>
>>>       Python 2.3 with pywin32-208 works. The error I receive reads
>>> "Object through and exception at line 3".
>>>
>>
>> How do you get that error?  You say "my dll throws an exception
>> immediately upon entry" - I can't reconcile that "with the error I
>> receive".  What does Python do when calling your failing DLL?  (ie, do you
>> get a traceback?  If so, please include it completely.  If not, what result
>> does Python get?  I'm still very unclear on the context of your problem.
>>
>>
>>        Un-registering and re-registering the dll does not help.
>>>
>>
>> But that's just unregistering and re-registering your DLL right?
>>
>>
>>        The test was conducted on the same machine after uninstalling
>>> Python and re-installing numerous combinations of Python 2.4, 2.5, 2.6,
>>> 2.7 with associated pywin32-208 thry pywin32-214.
>>>
>>>      If I uninstall the newer Python and re-install Python 2.3 and
>>> pywin32-208 all is OK again. It is definitely environmental as opposed
>>> to the code.
>>>
>>
>> Well - it's *someone's* code :)  To be clear, 2.3 + pywin32 209 fails?
>>
>> Mark
>>
>>>
>>> Thanks,
>>> Ed
>>>
>>> On Sun, May 13, 2012 at 9:07 PM, Mark Hammond <skippy.hammond at gmail.com
>>> <mailto:skippy.hammond at gmail.**com <skippy.hammond at gmail.com>>> wrote:
>>>
>>>     You haven't given us enough information to help.  What error do you
>>>     see?  What is the most recent combination of Python and pywin32 that
>>>     works?
>>>
>>>     Mark
>>>
>>>
>>>     On 12/05/2012 10:31 PM, EdShallow wrote:
>>>
>>>         Hi Folks,
>>>
>>>               I have an ActiveX COM dll generated by VisualBasic 6 in
>>>         WinXP. I
>>>         can call it and use it successfully with Python 2.3 and pywin32-208
>>>         without problems.
>>>
>>>               As soon as I upgrade either pywin32- or Python to anything
>>>         itself
>>>         to anything newer, my dll throws an exception immediately upon
>>>         entry.
>>>
>>>               Can anyone point me in a general direction with respect to
>>>         addressing this incompatibility?
>>>
>>>         Thanks,
>>>         Ed
>>>
>>>         --
>>>         Ed's Contact Information:
>>>         Mobile Phone: 613-852-6410 <tel:613-852-6410>
>>>         Gmail: ed.shallow at gmail.com <mailto:ed.shallow at gmail.com>
>>>         <mailto:ed.shallow at gmail.com <mailto:ed.shallow at gmail.com>>
>>>         VOIP Address: 107529 at sip.ca1.voip.ms
>>>         <mailto:107529 at sip.ca1.voip.ms**> <mailto:107529 at sip.ca1.voip.ms
>>>         <mailto:107529 at sip.ca1.voip.ms**>__>
>>>
>>>         VOIP DID#: 613-458-5004 <tel:613-458-5004>
>>>         Skype ID: edward.shallow
>>>         Home Phone: 613-482-2090 <tel:613-482-2090>
>>>
>>>
>>>
>>>         ______________________________**___________________
>>>         python-win32 mailing list
>>>         python-win32 at python.org <mailto:python-win32 at python.**org<python-win32 at python.org>
>>>>
>>>         http://mail.python.org/__**mailman/listinfo/python-win32<http://mail.python.org/__mailman/listinfo/python-win32>
>>>
>>>         <http://mail.python.org/**mailman/listinfo/python-win32<http://mail.python.org/mailman/listinfo/python-win32>
>>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Ed's Contact Information:
>>> Mobile Phone: 613-852-6410
>>> Gmail: ed.shallow at gmail.com <mailto:ed.shallow at gmail.com>
>>> VOIP Address: 107529 at sip.ca1.voip.ms <mailto:107529 at sip.ca1.voip.ms**>
>>> VOIP DID#: 613-458-5004
>>> Skype ID: edward.shallow
>>> Home Phone: 613-482-2090
>>>
>>>
>>
>>
>
>
>
>
> _______________________________________________
> python-win32 mailing list
> python-win32 at python.org
> http://mail.python.org/mailman/listinfo/python-win32
>




More information about the python-win32 mailing list