@@ -20,13 +20,15 @@ internal class UrlGroup : IDisposable
20
20
21
21
private ServerSession _serverSession ;
22
22
private bool _disposed ;
23
+ private bool _created ;
23
24
24
25
internal unsafe UrlGroup ( ServerSession serverSession , ILogger logger )
25
26
{
26
27
_serverSession = serverSession ;
27
28
_logger = logger ;
28
29
29
30
ulong urlGroupId = 0 ;
31
+ _created = true ;
30
32
var statusCode = HttpApi . HttpCreateUrlGroup (
31
33
_serverSession . Id . DangerousGetServerSessionId ( ) , & urlGroupId , 0 ) ;
32
34
@@ -44,6 +46,7 @@ internal unsafe UrlGroup(RequestQueue requestQueue, UrlPrefix url, ILogger logge
44
46
_logger = logger ;
45
47
46
48
ulong urlGroupId = 0 ;
49
+ _created = false ;
47
50
var statusCode = HttpApi . HttpFindUrlGroupId (
48
51
url . FullPrefix , requestQueue . Handle , & urlGroupId ) ;
49
52
@@ -141,14 +144,20 @@ public void Dispose()
141
144
142
145
_disposed = true ;
143
146
144
- Debug . Assert ( Id != 0 , "HttpCloseUrlGroup called with invalid url group id" ) ;
147
+ if ( _created )
148
+ {
145
149
146
- uint statusCode = HttpApi . HttpCloseUrlGroup ( Id ) ;
150
+ Debug . Assert ( Id != 0 , "HttpCloseUrlGroup called with invalid url group id" ) ;
151
+
152
+ uint statusCode = HttpApi . HttpCloseUrlGroup ( Id ) ;
153
+
154
+ if ( statusCode != UnsafeNclNativeMethods . ErrorCodes . ERROR_SUCCESS )
155
+ {
156
+ _logger . LogError ( LoggerEventIds . CloseUrlGroupError , "HttpCloseUrlGroup; Result: {0}" , statusCode ) ;
157
+ }
147
158
148
- if ( statusCode != UnsafeNclNativeMethods . ErrorCodes . ERROR_SUCCESS )
149
- {
150
- _logger . LogError ( LoggerEventIds . CloseUrlGroupError , "HttpCloseUrlGroup; Result: {0}" , statusCode ) ;
151
159
}
160
+
152
161
Id = 0 ;
153
162
}
154
163
0 commit comments