http://bugs.winehq.org/show_bug.cgi?id=16888
Summary: .NET 3.0: WCF installer requires httpapi.dll with some stubs Product: Wine Version: 1.1.12 Platform: Other URL: http://www.microsoft.com/downloads/details.aspx?FamilyID =10cc340b-f857-4a14-83f5-25634c3bf043 OS/Version: other Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: focht@gmx.net
Hello,
after getting past bug 16883 the next one...
Prerequisites:
--- 1. clean WINEPREFIX 2. sh mywinetricks -q wmicore 3. sh winetricks -q dotnet20 4. download .NET 3.0 Framework installer from: http://download.microsoft.com /download/4/d/a/4da3a5fa-ee6a-42b8-8bfa-ea5c4a458a7d/dotnetfx3setup.exe (sha1sum: a566bcd2ffffc3842a95adc57f7df3f8cd11577f) 5. export _SFX_CAB_SHUTDOWN_REQUEST=1 (workaround, see bug 9158) 6. wine ./dotnetfx3setup.exe
It might take a while until all required packages are downloaded using BITS.
Note: If you need to redo steps, backup the directory "dotnetfx304506.30" from "c:\windows\temp" to a different location, remove ~/.wine, copy "dotnetfx304506.30" again to "c:\windows\temp" to prevent BITS from downloading over and over again.
---
The WCF installer still fails:
--- snip --- ServiceModelReg [15:38:17:256]: Repairing: Net.Tcp Port Sharing Service (NetTcpPortSharing) ServiceModelReg [15:38:17:279]: Uninstalling: HTTP Namespace Reservations ServiceModelReg [15:38:17:294]: System.DllNotFoundException: Unable to load DLL 'httpapi.dll': Exception from HRESULT: 0x8007007E at System.ServiceModel.Install.NativeMethods.HttpTerminate(Int32 Flags, IntPtr pReserved) at System.ServiceModel.Install.HttpNamespaceReservationInstallComponent.get_IsInstalled() at System.ServiceModel.Install.HttpNamespaceReservationInstallComponent.Uninstall(OutputLevel outputLevel) at System.ServiceModel.Install.ServiceModelInstallComponent.Reinstall(OutputLevel outputLevel) at Microsoft.Tools.ServiceModel.ServiceModelReg.PerformAction(ActionItem actionItem, Nullable`1 confirmUninstall) at Microsoft.Tools.ServiceModel.ServiceModelReg.Run(String[] args) at Microsoft.Tools.ServiceModel.ServiceModelReg.TryRun(String[] args) === Verbose logging stopped: 1/11/2009 15:38:17 === --- snip ---
Native httpapi override makes things only worse since it expects http service present ...
--- snip --- ... 0035:CALL HTTPAPI.HttpInitialize(<unknown, check return>) ret=036a22c0 0035:trace:ntdll:NtCreateFile handle=0x67a16094 access=c0100000 name=L"\Device\Http\Control" objattr=00000040 root=(nil) sec=(nil) io=0x33ed54 alloc_size=(nil) attr=00000000 sharing=00000003 disp=1 options=00000000 ea=0x18fb28.0x0000001f 0035:trace:service:OpenSCManagerW ((null),(null),0x00000001) 0035:trace:service:sc_handle_alloc sc_handle type=0 -> 0x18fb28 ... 0013:trace:service:svcctl_OpenSCManagerW ((null), (null), 1) ... 0035:trace:service:OpenSCManagerW returning 0x18fb28 (access : 0x00000001) 0035:trace:service:OpenServiceW 0x18fb28 L"HTTP" 20 0035:trace:service:sc_handle_alloc sc_handle type=1 -> 0x18f658 ... 0018:trace:service:svcctl_OpenServiceW (L"HTTP", 0x14) ... 0035:trace:service:sc_handle_destroy_service destroying service 0x18f658 0035:trace:service:CloseServiceHandle 0x18fb28 ... 0035:trace:service:sc_handle_destroy_manager destroying SC Manager 0x18fb28 0035:RET HTTPAPI.HttpInitialize(00000001,00000002,00000000) retval=00000003 ret=036a22c0 ... Uninstalling: HTTP Namespace Reservations
Error: Path not found fixme:advapi:RegisterEventSourceW (L".",L"System.ServiceModel.Install 3.0.0.0"): stub fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x00000000,(nil),0x0001,0x00000000,0xa534b4,0xa5335c): stub err:eventlog:ReportEventW L"System.ComponentModel.Win32Exception: Path not found\r\n at System.ServiceModel.Install.HttpNamespaceReservationInstallComponent.get_IsInstalled()\r\n at System.ServiceModel.Install.HttpNamespaceReservationInstallComponent.Uninstall(OutputLevel outputLevel)\r\n at System.ServiceModel.Install.Se"... fixme:advapi:DeregisterEventSource (0xcafe4242) stub err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned 1603 ... --- snip ---
It seems better to provide a simple httpapi stub dll.
MSDN for more info (only version 1 API seems requested):
http://msdn.microsoft.com/en-us/library/aa364627.aspx http://msdn.microsoft.com/en-us/library/aa364625.aspx
After generating a stub dll with winedump and some trial & error sessions, the minimum required stubs are as follows:
--- snip --- HttpDeleteServiceConfiguration -> return NO_ERROR (0) HttpInitialize -> return NO_ERROR (0) HttpQueryServiceConfiguration -> return ERROR_FILE_NOT_FOUND (2) (most likely means the service not installed, passed args can be left untouched with this error) HttpSetServiceConfiguration -> return NO_ERROR (0) HttpTerminate -> return NO_ERROR (0) --- snip ---
With those stubs in place, the HTTP api related actions (fake) succeed.
--- snip --- ServiceModelReg [16:30:52:470]: Uninstalling: HTTP Namespace Reservations ServiceModelReg [16:30:52:472]: Warning: HTTP namespace reservations are not installed. ServiceModelReg [16:30:52:472]: Installing: HTTP Namespace Reservations ServiceModelReg [16:30:52:473]: Information: The ServiceModelReg tool has completed successfully. --- snip ---
and the WCF installer claims success.
Regards