Я новичок в стеке c# asp, и я разрабатываю веб-API для предоставления данных с нашего сервера SQL. У меня есть таблица для чтения с помощью команды HTTP GET
.
Все работает, как ожидалось, кроме того, что при компиляции я получаю сообщение об ошибке авторизации. Может ли кто-нибудь посоветовать, как управлять ошибкой, пожалуйста?
Любая помощь будет очень признателен, я действительно изо всех сил пытаюсь понять это. Спасибо.
Произошло исключение: CLR / System.InvalidOperationException Исключение типа 'System.InvalidOperationException' произошло в Microsoft.AspNetCore.Authorization.Policy.dll, но не было обработано в коде пользователя: 'Невозможно найти необходимые услуги. Добавьте все необходимые службы, вызвав IServiceCollection.AddAuthorization внутри вызова «ConfigureServices (...)» в коде запуска приложения. в Microsoft.AspNetCore.Builder.AuthorizationAppBuilderExtensions.VerifyServicesRegistered (приложение IApplicationBuilder) в Microsoft.AspNetCore.Builder.AuthorizationAppBuilderExtensions.UseAuthorization (приложение IApplicationBuilder * пользовательская среда grey \ Documents \ BED_MGMT_WEBAPP_APIs \ Startup.cs: строка 56 в System.RuntimeMethodHandle.InvokeMethod (объектная цель, аргументы Object [], сигнатура сигнатуры, логический конструктор, логическое значение wrapExceptions) в системном вызове объекта. , Связыватель, параметры Object [], культура CultureInfo) в Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke (экземпляр объекта, построитель IApplicationBuilder) в Microsoft.AspNetCore.Hosting.ConfigureBuilder. <> C__DisplayClass4_0.b__0 (сборщик приложений IA) AspNetCore.Hosting.GenericWebHostBuilder. <> C__DisplayClass13_0.b__2 (приложение IApplicationBuilder) в Microsoft.Asp NetCore.HostFilteringStartupFilter. <> C__DisplayClass0_0.b__0 (приложение IApplicationBuilder) в Microsoft.AspNetCore.Hosting.GenericWebHostService.d__31.MoveNext ()
мой запуск. C3 настройки приложения:
{
"ConnectionString": {
"DefaultConnection": "Server=blah.blah.blah.blah;Database=ourDB;Trusted_Connection=True;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
Элементы моей таблицы:
using System;
namespace BED_MGMT_WEBAPP_APIs.Models
{
public class Bed_Data
{
public string HOSPITAL {get;set;}
public string WARD_CODE {get;set;}
public string WARD {get;set;}
public int REALTIME_BED_STOCK {get;set;}
public int ACTUAL_BED_STOCK {get;set;}
public int AVAILABLE_BEDS_M {get;set;}
public int AVAILABLE_BEDS_F {get;set;}
public int AVAILABLE_BEDS_C {get;set;}
public int TOTAL_BEDS_CLOSED {get;set;}
public int CLOSED_AND_UNOCCUPIED {get;set;}
public int ESCALATION_BEDS_IN_USE {get;set;}
public int DISCHARGES_CONFIRMED_M {get;set;}
public int DISCHARGES_CONFIRMED_F {get;set;}
public int DISCHARGES_CONFIRMED_C {get;set;}
public int DISCHARGES_POTENTIAL_M {get;set;}
public int DISCHARGES_POTENTIAL_F {get;set;}
public int DISCHARGES_POTENTIAL_C {get;set;}
public int AWAITING_ADMISSION_AE_M {get;set;}
public int AWAITING_ADMISSION_AE_F {get;set;}
public int AWAITING_ADMISSION_AE_C {get;set;}
public int AWAITING_ADMISSION_INTERNAL_M {get;set;}
public int AWAITING_ADMISSION_INTERNAL_F {get;set;}
public int AWAITING_ADMISSION_INTERNAL_C {get;set;}
public int AWAITING_ADMISSION_EXTERNAL_M {get;set;}
public int AWAITING_ADMISSION_EXTERNAL_F {get;set;}
public int AWAITING_ADMISSION_EXTERNAL_C {get;set;}
public int AWAITING_REPATRIATION_IN {get;set;}
public int AWAITING_REPATRIATION_OUT {get;set;}
public int OUTLIERS_MED {get;set;}
public int OUTLIERS_SURG {get;set;}
public int OUTLIERS_ORTH {get;set;}
public string STAFFING_SHORTAGES {get;set;}
public string USER_CODE {get;set;}
public string DATETIME_RECORD_INSERTED {get;set;} //= System.Convert.ToDateTime()
}
}
Контекст моей БД:
using Microsoft.EntityFrameworkCore;
namespace BED_MGMT_WEBAPP_APIs.Models
{
public class bed_data_dbconnect : DbContext
{
public bed_data_dbconnect(DbContextOptions options) : base(options)
{ }
public DbSet<Bed_Data> tblBase_BEDMGMT_BEDS_BY_WARD { get; set; }
}
}
Мой контроллер:
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
using BED_MGMT_WEBAPP_APIs.Models;
namespace BED_MGMT_WEBAPP_APIs.Controllers
{
[Route("api/[Controller]")]
[ApiController]
public class bed_data_controller : Controller
{
private bed_data_dbconnect _bed_data;
public bed_data_controller(bed_data_dbconnect context)
{
_bed_data = context;
}
//Get api/values
[HttpGet]
public ActionResult Get()
{
var result=_bed_data.tblBase_BEDMGMT_BEDS_BY_WARD.ToList();
return Json(result);
}
~bed_data_controller()
{
_bed_data.Dispose();
}
}
}