swagger-ui retourneert 500 na implementatie

Out-of-the-box configuratie werkt perfect op mijn machine, helemaal geen problemen.

Maar wanneer ik implementeer in onze testomgeving, krijg ik het volgende bericht

500 : { “Bericht”: “Er is een fout opgetreden.” } /api/swagger/docs/v1

invoeren afbeelding beschrijving hier
De implementatie is om default web site/api

Ik vermoed dat het iets te maken heeft met de baseUrl of iets dergelijks,
maar ik heb geen idee waar ik moet beginnen.

Mijn routes werken prima binnen het project – ik kan al mijn webapi-eindpunten aanroepen en ze reageren correct.

alle hulp wordt zeer op prijs gesteld


Antwoord 1, autoriteit 100%

Bij het debuggen gebruikte ik de debug-configuratie (die ik XmlComments had gegenereerd voor: Properties -> build-tabblad -> Output -> XML-documentatiebestand)

Ik had dit niet gedaan voor mijn releaseconfiguratie (duh…) – nu werkt alles


Antwoord 2, autoriteit 15%

bedankt @VisualBean.

Omdat het voor mij niet zo duidelijk was …. hoe je… een eenvoudige afbeelding moet maken.

In Project > Uw projecteigenschappen > Tabblad Bouwen

voer hier de afbeeldingsbeschrijving in


Antwoord 3, autoriteit 9%

Swashbuckle verbergt de echte foutmelding vanwege je customErrors-instelling in web.config. Als je customErrors uitzet, zou je een betere foutmelding moeten krijgen.

<system.web>
    <customErrors mode="Off"/>
</system.web>

Antwoord 4

Het probleem is dat het uitvoeren van dotnet publishmet -r Releasegeen XML-bestand oplevert. Echter, dotnet publishmet -r Debugproduceert in feite het bestand. Dit verklaart waarom mensen dit probleem alleen krijgen wanneer ze implementeren in andere omgevingen dan lokaal, en vervolgens zichzelf voor de gek houden als de uitzondering alleen op prod wordt gevonden. directory en u zou het probleem moeten zien.

(UPDATE) De oplossing voor mij was om daadwerkelijk naar het .csproj-bestand te gaan en een regel toe te voegen om ervoor te zorgen dat het bestand altijd werd gekopieerd.
Verschil hieronder weergegeven:
voer hier de afbeeldingsbeschrijving in


Antwoord 5

Het geaccepteerde antwoord zou het eerste moeten zijn dat u probeert.

Ik heb mijn XML-uitvoer echter ingesteld om naar App_Data\ te gaan en heb mijn Swashbuckle geconfigureerd om uit die map te lezen, dus het maakt niet uit op welke manier het wordt gebouwd: de xml-bestanden zullen ‘daar zijn’ . Desalniettemin kreeg ik nog steeds de fout…

Ik vond op MSDN-forums@enough2012’s antwoord:

selecteer “Extra bestanden op bestemming verwijderen” in de “Opties voor het publiceren van bestanden” in het deelvenster “Instellingen” van het dialoogvenster Publiceren.

Werkt als een tierelier!

Other episodes