Rob,
 
Have now tested build 4813.  Looks okay.  Ran the install three times
with no ConfigureSQL issue (Log looks good).
 
However for your info the install then fails with a "Failed to read
IIsWebs table".  I have made no changes to this part of the install, and
there is an IIsWebSite table (using Orca to double check).
 
Log details:
 
    ConfigureIIs:  Skipping ScaInstallWebSvcExt() because
IIsWebServiceExtension table not present
    ConfigureIIs:  Skipping ScaInstallAppPool() - required table not
present
    ConfigureIIs:  Skipping ScaInstallMimeMap() - required table not
present
    ConfigureIIs:  Skipping ScaGetHttpHeaders() - required tables not
present.
    ConfigureIIs:  Skipping ScaGetWebErrors() - required tables not
present.
    ConfigureIIs:  Error 0x80004004: IIsWebSiteCertificates table does
not exists or error.
    ConfigureIIs:  Error 0x80004004: Failed to get SSL Certificates.
    ConfigureIIs:  Error 0x80004004: failed to read IIsWebSite table
    Error 26002. Failed to read IIsWebs table.   (-2147467260         )
    MSI (s) (9C!30) [10:06:25:770]: Product: CINS -- Error 26002. Failed
to read IIsWebs table.   (-2147467260         )
 
 
At this point I need to move forward internally so I will be using build
4415 with a modified scasched.dll for the moment.   
 
 
Regards
 
Michael
 


  _____  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Michael
Osmond
Sent: Friday, 15 December 2006 12:57 PM
To: Rob Mensching; wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Testing the ConfigureSQL fix


Okay.  
 
Probably won't get to it today.  Will definitely get at it on Monday. (
Is it today or yesterday there? )
 
Michael

  _____  

From: Rob Mensching [mailto:[EMAIL PROTECTED] 
Sent: Friday, 15 December 2006 12:55 PM
To: Michael Osmond; wix-users@lists.sourceforge.net
Subject: RE: Testing the ConfigureSQL fix



Oh, sorry, I busted that build and tried to get a fix out really fast
(that's why there is a build 2 days later).  I hadn't heard from you so
I thought maybe I squeaked it in.  I should have sent mail as soon as I
found the bug I introduced.

 

Anyway, if you could grab the latest WiX v2 build instead, I think that
will work much, much better.

 

From: Michael Osmond [mailto:[EMAIL PROTECTED] 
Sent: Thursday, December 14, 2006 18:48
To: Rob Mensching; wix-users@lists.sourceforge.net
Subject: RE: Testing the ConfigureSQL fix

 

2.0.4809 I grabbed it on wednesday I think

 

  _____  

From: Rob Mensching [mailto:[EMAIL PROTECTED] 
Sent: Friday, 15 December 2006 12:43 PM
To: Michael Osmond; wix-users@lists.sourceforge.net
Subject: RE: Testing the ConfigureSQL fix

What build are you using?

 

From: Michael Osmond [mailto:[EMAIL PROTECTED] 
Sent: Thursday, December 14, 2006 17:35
To: wix-users@lists.sourceforge.net; Rob Mensching
Subject: Testing the ConfigureSQL fix

 

Hello Rob,

 

I only got back to testing this today - one busy week.

 

Build 4809 displayed a similar (or same) error - that is the custom
action crashes and you get the unclosed handles.  I have spent a little
time to track down where in the code it is occuring.

 

Its in StrAllocStringAnsi - but now right at the start of the process.
In the call:

 

        cch = MemSize(*ppwz);  // get the count in bytes so we can check
if it failed (returns -1)

Below is the debug messages I added to the function to locate the error.
And below that the actual output. 

 

Sorry its taken this long to get to it.

 

Michael

 

=============================================

 

/********************************************************************
StrAllocStringAnsi - allocates or reuses dynamic string memory and
copies in an existing ANSI string

 

NOTE: caller is responsible for freeing ppwz even if function fails
NOTE: cchSource must equal the length of wzSource (not including the
NULL terminator)
NOTE: if cchSource == 0, length of wzSource is used instead
********************************************************************/
extern "C" HRESULT DAPI StrAllocStringAnsi(
    __inout LPWSTR* ppwz,
    __in LPCSTR szSource,
    __in DWORD_PTR cchSource,
    __in UINT uiCodepage
    )
{
    Assert(ppwz && szSource);

 

    HRESULT hr = S_OK;
    LPWSTR pwz = NULL;
    DWORD_PTR cch = 0;
    DWORD_PTR cchDest = cchSource;  // at least enough

 

OutputDebugStringA("#### Starting StrAllocStringAnsi !! 4809 x 2\r\n");

 


    if (*ppwz)
    {
OutputDebugStringA("#### StrAllocStringAnsi 0\r\n");
        cch = MemSize(*ppwz);  // get the count in bytes so we can check
if it failed (returns -1)
OutputDebugStringA("#### StrAllocStringAnsi 0-A\r\n");
        if (-1 == cch)
        {
            ExitOnFailure(hr = E_INVALIDARG, "failed to get size of
destination string");
        }
OutputDebugStringA("#### StrAllocStringAnsi 0-B\r\n");
        cch /= sizeof(WCHAR);  //convert the count in bytes to count in
characters
OutputDebugStringA("#### StrAllocStringAnsi 0-C\r\n");
    }

 

OutputDebugStringA("#### StrAllocStringAnsi 1\r\n");
    if (0 == cchSource)
    {
        cchDest = ::MultiByteToWideChar(uiCodepage, 0, szSource, -1,
NULL, 0);
        if (0 == cchDest)
        {
            ExitWithLastError1(hr, "failed to get required size for
conversion to unicode: %s", szSource);
        }

 

        --cchDest; //subtract one because MultiByteToWideChar includes
space for the NULL terminator that we track below
    }
    else if (L'\0' == szSource[cchSource]) // if the source already had
a null terminator, don't count that in the character count because we
track it below
    {
        cchDest = cchSource - 1;
    }
OutputDebugStringA("#### StrAllocStringAnsi 2\r\n");

 

    if (cch < cchDest + 1)
    {

 

OutputDebugStringA("#### StrAllocStringAnsi 3\r\n");

 

        cch = cchDest + 1;
        if (cch >= MAXDWORD / sizeof(WCHAR))
        {
OutputDebugStringA("#### StrAllocStringAnsi 4\r\n");
            ExitOnFailure1(hr = E_OUTOFMEMORY, "Not enough memory to
allocate string of size: %d", cch);
        }

 

        if (*ppwz)
        {
OutputDebugStringA("#### StrAllocStringAnsi 5\r\n");
            pwz = static_cast<LPWSTR>(MemReAlloc(*ppwz, sizeof(WCHAR) *
cch, TRUE));
        }
        else
        {
OutputDebugStringA("#### StrAllocStringAnsi 6\r\n");
            pwz = static_cast<LPWSTR>(MemAlloc(sizeof(WCHAR) * cch,
TRUE));
        }

 

        ExitOnNull1(pwz, hr, E_OUTOFMEMORY, "failed to allocate string,
len: %d", cch);

 

OutputDebugStringA("#### StrAllocStringAnsi 7\r\n");
        *ppwz = pwz;
    }
OutputDebugStringA("\r\nAbout to call!! 4809");

 

    if (0 == ::MultiByteToWideChar(uiCodepage, 0, szSource, 0 ==
cchSource ? -1 : (int)cchSource, *ppwz, (int)cch))
    {
        ExitWithLastError1(hr, "failed to convert to unicode: %s",
szSource);
    }
OutputDebugStringA("\r\nDone the call!!");

 

    (*ppwz)[cchDest] = L'\0';

 

LExit:
    return hr;
}

 

1204: ConfigureSql:  #### Doing script: 'drop_TriggersConstraints'
1204: ConfigureSql:  #### ScaSqlStr - Calling StrAllocStringAnsi
1204: #### Starting StrAllocStringAnsi !! 4809 x 2
1204: #### StrAllocStringAnsi 0
1204: ConfigureSql:  Debug Assert Message: Assertion failed in
c:\baydev\install
\wix2.0.4809\src\ca\wcautil\wcautil.cpp, 64
CustomAction ConfigureSql called WcaInitialize() but not WcaTerminate()

 

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to