Rob,
Understand the predicament. I have wondered if there is a way I can
contribute back to WIX either in testing or documenting. (However time
has not always been friendly). I actually started experimenting on
some scripts to unit test my installs (so that I could do some major
reorganisation but still get the same installed outcome). I could have
a look at what testing the Serverca would require. I am actually fairly
dependant on both the SQL and IIS tools.
Michael
_____
From: Rob Mensching [mailto:[EMAIL PROTECTED]
Sent: Monday, 18 December 2006 11:05 AM
To: Michael Osmond; wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] Testing the ConfigureSQL fix
Dang it. That's completely unrelated to the SQL change. I made an
incorrect assumption about presence of Certificate tables. Grr. It'll
be fixed in the next build.
PS: as is probably apparent by now, we do not have good unit testing to
verify changes in the Server CustomAction code. Even worse, I'm very
rusty on the code so I'm making dumb mistakes. Sorry for the trouble.
From: Michael Osmond [mailto:[EMAIL PROTECTED]
Sent: Sunday, December 17, 2006 16:23
To: Rob Mensching; wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] Testing the ConfigureSQL fix
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