MTU Rate

Bei den neuen Servern änderte sich bei Updates die MPU-Rate, was zu Datenbanklese/schreibproblemen führte. Thomas änderte die MPU-Rate dann auf einen Wert, wo das wieder ging.

Authentification jwt

Microsoft.IdentityModel.Tokens.SecurityTokenMalformedException: IDX14100: JWT is not well formed, there are no dots (.).
The token needs to be in JWS or JWE Compact Serialization Format. (JWS): 'EncodedHeader.EndcodedPayload.EncodedSignature'. (JWE): 'EncodedProtectedHeader.EncodedEncryptedKey.EncodedInitializationVector.EncodedCiphertext.EncodedAuthenticationTag'.
 ---> System.ArgumentException: IDX14101: Unable to decode the payload '[PII of type 'Microsoft.IdentityModel.Logging.SecurityArtifact' is hidden. For more details, see https://aka.ms/IdentityModel/PII.]' as Base64Url encoded string.
 ---> System.Text.Json.JsonException: IDX11020: The JSON value of type: 'String', could not be converted to 'JsonTokenType.Number'. Reading: 'Microsoft.IdentityModel.JsonWebTokens.JsonWebToken.iat', Position: '185', CurrentDepth: '1', BytesConsumed: '213'.
   at Microsoft.IdentityModel.Tokens.Json.JsonSerializerPrimitives.ReadLong(Utf8JsonReader& reader, String propertyName, String className, Boolean read)
   at Microsoft.IdentityModel.JsonWebTokens.JsonWebToken.CreatePayloadClaimSet(Byte[] bytes, Int32 length)
   at Microsoft.IdentityModel.Tokens.Base64UrlEncoding.Decode[T](String input, Int32 offset, Int32 length, Func`3 action)
   at Microsoft.IdentityModel.JsonWebTokens.JsonWebToken.CreateClaimSet(String rawString, Int32 startIndex, Int32 length, Func`3 action)
   at Microsoft.IdentityModel.JsonWebTokens.JsonWebToken.ReadToken(String encodedJson)
   --- End of inner exception stack trace ---
   at Microsoft.IdentityModel.JsonWebTokens.JsonWebToken.ReadToken(String encodedJson)
   at Microsoft.IdentityModel.JsonWebTokens.JsonWebToken..ctor(String jwtEncodedString)
   at Microsoft.IdentityModel.JsonWebTokens.JsonWebTokenHandler.ReadToken(String token, TokenValidationParameters validationParameters)
   --- End of inner exception stack trace ---

Als Lösung hat geholfen

System.IdentityModel.Tokens.Jwt zu installieren.

Veröffentlicht unter c#

index.html anzeigbar machen

Nun, ich habe gerade den RouteConfig.RegisterRoutes(RouteTable.Routes); -Aufruf in Global.asax.cs Entfernt und nun wird jede URL, die ich eingebe, wenn die Ressource existiert, bedient. Sogar die API-Hilfeseiten funktionieren noch.

Veröffentlicht unter c#

Eigenes JSONSerialize DAteTime Format

You could use this approach:

public class DateFormatConverter : IsoDateTimeConverter
{
    public DateFormatConverter(string format)
    {
        DateTimeFormat = format;
    }
}

And use it this way:

class ReturnObjectA 
{
    [JsonConverter(typeof(DateFormatConverter), "yyyy-MM-dd")]
    public DateTime ReturnDate { get;set;}
}

The DateTimeFormat string uses the .NET format string syntax described here: https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

Json SerializerSettings DatFormatstring

gurndsätzlich kann man die Options in Progam.cs angeben mit:

builder.Services.AddControllersWithViews()
    .AddNewtonsoftJson(options => { 
    options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
    options.SerializerSettings.DateFormatString = "yyyy-MM-dd";
    options.SerializerSettings.NullValueHandling = NullValueHandling.Include;
    }
);

Dann in der IActionResult – Klasse des Controllers mit:

IActionResult() meineMethode(){

irgendeineKlasse myresult = Daten
.
.
.

 var settings = new JsonSerializerSettings
 {
     DateFormatString = "yyyy-MM-dd HH:mm:ss"
 };
 var json = JsonConvert.SerializeObject(myresult, settings);
 return Ok(json);
}