.NetCore Swagger ไม่สามารถทำงานได้

ฉันใช้เวลานานในการพยายามกำหนดค่าผยองสำหรับโปรเจ็กต์ .netCore ของฉัน

ฉันทำตามขั้นตอนต่อไปนี้แล้ว แต่ไม่สำเร็จ :-(

  1. แพ็คเกจนักเก็ต:

    Swashbuckler.SwaggerGen,
    Swashbuckler.SwaggerUi,
    
  2. ในวิธี ConfigureServices

    instance.AddMvc();
    instance.AddSwaggerGen();
    
  3. ในวิธีการกำหนดค่า

     instance.UseMvc();
     instance.UseSwagger();
     instance.UseSwaggerUi();
    
  4. ฉันสร้างโครงการใหม่ และไปที่ลิงก์ http://localhost:5000/swagger/ui

เกิดข้อผิดพลาด: localhost ปฏิเสธที่จะเชื่อมต่อ ERR_CONNECTION_REFUSED

ใครสามารถช่วยฉันได้บ้าง??

BR,

ลีออน


person user1938143    schedule 10.08.2017    source แหล่งที่มา
comment
แอปพลิเคชันของคุณทำงานบนพอร์ตนี้หรือไม่ เมื่อคุณรันด้วยโปรเจ็กต์ที่สร้างขึ้นใหม่ มันจะรันบน IIS Express โดยปกติแล้วจะมีจำนวนสุ่มสูงเช่น 45342   -  person Tseng    schedule 10.08.2017
comment
สวัสดี Tseng ใช่แล้ว อัลคาไลน์ของฉันอยู่ที่ 5,000   -  person user1938143    schedule 10.08.2017
comment
จากนั้นคุณไม่ควรได้รับข้อความปฏิเสธการเชื่อมต่อและรับ 200 (ไม่เป็นไร), 404 (ไม่พบหน้า) หรือ 500 (ข้อผิดพลาดเซิร์ฟเวอร์ภายใน เช่น ข้อยกเว้น)   -  person Tseng    schedule 10.08.2017
comment
สวัสดี Tseng คุณรู้ไหม ฉันจะตั้งค่าท่าให้ผยองได้อย่างไร?   -  person user1938143    schedule 10.08.2017
comment
คุณไม่. มันจะทำงานบนแอปพลิเคชันเดียวกัน คุณมั่นใจอย่างแน่นอนว่าคุณสามารถเข้าถึงแอปพลิเคชันของคุณได้ที่ localhost:5000 หากทำได้ คุณไม่ควรได้รับ ERR_CONNECTION_REFUSED เป็นไปได้ว่าคุณจะได้ 404 ที่ /swagger/ui คุณได้ลองลบส่วน /ui ออกแล้วหรือยัง?   -  person Marcus W    schedule 10.08.2017
comment
สวัสดี Marcus W ใช่ ฉันแน่ใจว่าฉันสามารถเข้าถึงใบสมัครของฉันได้ที่ localhost:5000   -  person user1938143    schedule 10.08.2017
comment
โปรดดูลิงค์ด้านล่าง สิ่งนี้ได้ผลสำหรับฉันเช่นกัน stackoverflow.com/a/50629590/2367302   -  person Sreehari    schedule 03.07.2018


คำตอบ (2)


นี่คือสิ่งที่ฉันมีในโครงการ aspnet core rest api ของฉัน

ในวิธี ConfigureServices:

services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new Info
    {
        Title = "MyProject - HTTP API",
        Version = "v1",
        Description = "My project HTTP API."
    });
});

ในวิธีการ Configure:

app.UseSwagger().UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProj HTTP API v1");
});

จากนั้นเพียงนำทางไปยัง http://localhost:56468/swagger/ โดยที่ 56468 คือพอร์ตที่แอปพลิเคชันของฉันทำงานอยู่

person regnauld    schedule 10.08.2017
comment
สวัสดี ตอนนี้มันใช้งานได้ดี แต่ข้อผิดพลาดอีกอย่างคือ: ไม่สามารถอ่าน Swagger JSON จาก localhost: 5000/swagger/v1/swagger.json - person user1938143; 10.08.2017
comment
คุณสามารถอัปเดตคำถามของคุณว่าโค้ดของคุณมีลักษณะอย่างไรในตอนนี้ - person Marcus W; 11.08.2017

คุณควรรวมแพ็คเกจ NuGet Swashbuckle.AspNetCore สำหรับการกำหนดค่าที่ผยอง เพิ่มโค้ดด้านล่างในส่วน Configure ของ Startup.cs

app.UseSwagger();
app.UseSwaggerUI(c =>
{
  c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});

และเพิ่มโค้ดด้านล่างในส่วน ConfigureServices ของ Statup

services.AddSwaggerGen(c => {
       c.SwaggerDoc("v1", new OpenApiInfo() { Title = "My API", Description = "My API V1" });
    });
person RK001    schedule 13.10.2020