[Bug 49819] Multiple 4.x / 5.x .NET apps need 'httpapi.HttpSetUrlGroupProperty' to support 'HttpServerTimeoutsProperty' property (EveMon 4.0.18.4979, ASP.NET Core apps)

WineHQ Bugzilla wine-bugs at winehq.org
Thu Jun 24 11:06:00 CDT 2021


https://bugs.winehq.org/show_bug.cgi?id=49819

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|EveMon (v 4.0.18.4979):     |Multiple 4.x / 5.x .NET
                   |(with dotnet461) crashes on |apps need
                   |add character               |'httpapi.HttpSetUrlGroupPro
                   |                            |perty' to support
                   |                            |'HttpServerTimeoutsProperty
                   |                            |' property (EveMon
                   |                            |4.0.18.4979, ASP.NET Core
                   |                            |apps)
           Keywords|                            |dotnet
             Status|UNCONFIRMED                 |NEW
                 CC|                            |focht at gmx.net
     Ever confirmed|0                           |1

--- Comment #6 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming, still present. Refining the summary to highlight the actual problem
here. User 'guest94' in IRC #winehq encountered same problem with custom
ASP.NET core app.

Backtrace from the user:

--- snip ---
vtwine_1  | fail: Microsoft.AspNetCore.Server.HttpSys.HttpSysListener[18]
vtwine_1  |       SetUrlGroupProperty
vtwine_1  |       Microsoft.AspNetCore.Server.HttpSys.HttpSysException (120):
Call not implemented.
vtwine_1  | 00a0:err:eventlog:ReportEventW L"Category:
Microsoft.AspNetCore.Server.HttpSys.HttpSysListener\r\nEventId:
18\r\n\r\nSetUrlGroupProperty\r\n\r\nException:
\r\nMicrosoft.AspNetCore.Server.HttpSys.HttpSysException (120): Call not
implemented.\r\n"
vtwine_1  | 00a0:err:eventlog:ReportEventW L"Category:
Microsoft.AspNetCore.Server.HttpSys.HttpSysListener\r\nEventId:
43\r\n\r\nStart\r\n\r\nException:
\r\nMicrosoft.AspNetCore.Server.HttpSys.HttpSysException (120): Call not
implemented.\r\n   at
Microsoft.AspNetCore.Server.HttpSys.UrlGroup.SetProperty(HTTP_SERVER_PROPERTY
property"...
vtwine_1  | fail: Microsoft.AspNetCore.Server.HttpSys.HttpSysListener[43]
vtwine_1  |       Start
vtwine_1  |       Microsoft.AspNetCore.Server.HttpSys.HttpSysException (120):
Call not implemented.
vtwine_1  |          at
Microsoft.AspNetCore.Server.HttpSys.UrlGroup.SetProperty(HTTP_SERVER_PROPERTY
property, IntPtr info, UInt32 infosize, Boolean throwOnError)
vtwine_1  |          at
Microsoft.AspNetCore.Server.HttpSys.TimeoutManager.SetUrlGroupTimeouts(Int32[]
timeouts, UInt32 minSendBytesPerSecond)
vtwine_1  |          at
Microsoft.AspNetCore.Server.HttpSys.HttpSysOptions.Apply(UrlGroup urlGroup,
RequestQueue requestQueue)
vtwine_1  |          at
Microsoft.AspNetCore.Server.HttpSys.HttpSysListener.Start()
--- snip ---

MS .NET reference source (expanding comment #3 further):

https://referencesource.microsoft.com/#system/net/system/Net/HttpListener.cs,521

--- snip ---
        internal void SetServerTimeout(int[] timeouts, uint
minSendBytesPerSecond) {
            ValidateV2Property(); // CheckDispose and initilize HttpListener in
the case of app.config timeouts

            UnsafeNclNativeMethods.HttpApi.HTTP_TIMEOUT_LIMIT_INFO timeoutinfo
=
                new UnsafeNclNativeMethods.HttpApi.HTTP_TIMEOUT_LIMIT_INFO();

            timeoutinfo.Flags =
UnsafeNclNativeMethods.HttpApi.HTTP_FLAGS.HTTP_PROPERTY_FLAG_PRESENT;
            timeoutinfo.DrainEntityBody = 
               
(ushort)timeouts[(int)UnsafeNclNativeMethods.HttpApi.HTTP_TIMEOUT_TYPE.DrainEntityBody];
            timeoutinfo.EntityBody =
               
(ushort)timeouts[(int)UnsafeNclNativeMethods.HttpApi.HTTP_TIMEOUT_TYPE.EntityBody];
            timeoutinfo.RequestQueue =
               
(ushort)timeouts[(int)UnsafeNclNativeMethods.HttpApi.HTTP_TIMEOUT_TYPE.RequestQueue];
            timeoutinfo.IdleConnection =
               
(ushort)timeouts[(int)UnsafeNclNativeMethods.HttpApi.HTTP_TIMEOUT_TYPE.IdleConnection];
            timeoutinfo.HeaderWait =
               
(ushort)timeouts[(int)UnsafeNclNativeMethods.HttpApi.HTTP_TIMEOUT_TYPE.HeaderWait];
            timeoutinfo.MinSendRate = minSendBytesPerSecond;                

            IntPtr infoptr = new IntPtr(&timeoutinfo);

            SetUrlGroupProperty(
               
UnsafeNclNativeMethods.HttpApi.HTTP_SERVER_PROPERTY.HttpServerTimeoutsProperty,
                infoptr,
(uint)Marshal.SizeOf(typeof(UnsafeNclNativeMethods.HttpApi.HTTP_TIMEOUT_LIMIT_INFO)));
        }
--- snip ---

Similar with
'Microsoft.AspNetCore.Server.HttpSys.TimeoutManager.SetUrlGroupTimeouts'.

Wine source:

https://source.winehq.org/git/wine.git/blob/ad03df1222c2bb22e991641dcc0d9e4ed684158b:/dlls/httpapi/httpapi_main.c#l651

--- snip ---
 651 /***********************************************************************
 652  *        HttpSetUrlGroupProperty     (HTTPAPI.@)
 653  */
 654 ULONG WINAPI HttpSetUrlGroupProperty(HTTP_URL_GROUP_ID id,
HTTP_SERVER_PROPERTY property, void *value, ULONG length)
 655 {
 656     struct url_group *group = get_url_group(id);
 657 
 658     TRACE("id %s, property %u, value %p, length %u.\n",
 659             wine_dbgstr_longlong(id), property, value, length);
 660 
 661     switch (property)
 662     {
 663         case HttpServerBindingProperty:
 664         {
 665             const HTTP_BINDING_INFO *info = value;
 666 
 667             TRACE("Binding to queue %p.\n", info->RequestQueueHandle);
 668             group->queue = info->RequestQueueHandle;
 669             if (group->url)
 670                 add_url(group->queue, group->url, group->context);
 671             return ERROR_SUCCESS;
 672         }
 673         case HttpServerLoggingProperty:
 674             WARN("Ignoring logging property.\n");
 675             return ERROR_SUCCESS;
 676         default:
 677             FIXME("Unhandled property %u.\n", property);
 678             return ERROR_CALL_NOT_IMPLEMENTED;
 679     }
 680 }
--- snip ---

$ wine --version
wine-6.11-88-gad03df1222c

Regards

-- 
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