@@ -2078,6 +2078,7 @@ interface
20782078 End ;
20792079 If RESTDWFileExists(sFile, FRootPath) then
20802080 Begin
2081+ StatusCode := 200 ;
20812082 ContentType := GetMIMEType(sFile);
20822083 ServerContextStream := TMemoryStream.Create;
20832084 ServerContextStream.LoadFromFile(sFile);
@@ -3828,15 +3829,15 @@ interface
38283829 LocalDoc := ' ' ;
38293830 If TEncodeSelect(vEncoding) = esUtf8 Then
38303831 sCharset := ' utf-8'
3831- Else If TEncodeSelect(vEncoding) in [esANSI, esASCII] Then
3832+ Else If TEncodeSelect(vEncoding) in [esANSI, esASCII] Then
38323833 sCharset := ' ansi' ;
38333834 If Not vSpecialServer Then
38343835 Begin
38353836 StatusCode := vErrorCode;
38363837 If ServerContextStream <> Nil Then
38373838 Begin
38383839 If Not (Assigned(ResultStream)) Then
3839- ResultStream := TStringStream.Create(' ' ); // Anderson
3840+ ResultStream := TStringStream.Create(' ' );
38403841 WriteStream(ServerContextStream, ResultStream);
38413842 FreeAndNil(ServerContextStream);
38423843 End
@@ -3854,6 +3855,8 @@ interface
38543855 { $IF CompilerVersion > 21}
38553856 mb := TStringStream.Create(JSONStr{ $IFNDEF FPC}{ $IF CompilerVersion > 21} , TEncoding.UTF8{ $IFEND}{ $ENDIF} );
38563857 mb.Position := 0 ;
3858+ If Not (Assigned(ResultStream)) Then
3859+ ResultStream := TStringStream.Create(' ' );
38573860 WriteStream(mb, ResultStream);
38583861 FreeAndNil(mb);
38593862 { $ELSE}
@@ -6387,12 +6390,14 @@ interface
63876390 vTagService := False;
63886391 For B := 0 To TRESTDWServerContext(ServerMethodsClass.Components[i]).ContextList.Count -1 Do
63896392 Begin
6390- If ((LowerCase(urlContext) = LowerCase(TRESTDWServerContext(ServerMethodsClass.Components[i]).DefaultContext))) Or
6391- ((Trim(TRESTDWServerContext(ServerMethodsClass.Components[i]).DefaultContext) = ' ' ) And (Pooler = ' ' ) And
6392- (TRESTDWServerContext(ServerMethodsClass.Components[i]).ContextList.ContextByName[urlContext] <> Nil )) Then
6393+ If ((LowerCase(Pooler) = LowerCase(TRESTDWServerContext(ServerMethodsClass.Components[i]).DefaultContext))) Or
6394+ ((Trim(TRESTDWServerContext(ServerMethodsClass.Components[i]).DefaultContext) = ' ' ) And
6395+ ((urlContext = ' ' ) or (urlContext = ' /' ))) Then
6396+ vTagService := (TRESTDWServerContext(ServerMethodsClass.Components[i]).ContextList.ContextByName[Pooler] <> Nil );
6397+ If vTagService Then
63936398 Begin
63946399 vRootContext := TRESTDWServerContext(ServerMethodsClass.Components[i]).DefaultContext;
6395- If ((Pooler = ' ' ) And (vRootContext <> ' ' )) Then
6400+ If (((urlContext = ' ' ) or (urlContext = ' / ' )) And (vRootContext <> ' ' )) And (Pooler = ' ' ) Then
63966401 Pooler := vRootContext;
63976402 End
63986403 Else
0 commit comments