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
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
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 publish
met -r Release
geen XML-bestand oplevert. Echter, dotnet publish
met -r Debug
produceert 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:
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!