[Bug 16888] New: .NET 3.0: WCF installer requires httpapi.dll with some stubs

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Jan 11 11:04:41 CST 2009


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 at winehq.org
        ReportedBy: focht at 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


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list