Asp.net 具有DbContext的Web服务
我是一名非常新的web服务人员,在一项任务上遇到了麻烦 我有Asp.net 具有DbContext的Web服务,asp.net,entity-framework,web-services,Asp.net,Entity Framework,Web Services,我是一名非常新的web服务人员,在一项任务上遇到了麻烦 我有clientscoontroller,LocalAdminGroupManagementController,valuescoontroller,ClientHealthContext,客户端模型和LocalAdminGroupManagement模型 我调用这个web服务来更新数据库,我现在尝试做的另一个目的是从表中选择所有记录。在我添加localadminggroupmanagementcontroller和localadmingg
clientscoontroller
,LocalAdminGroupManagementController
,valuescoontroller
,ClientHealthContext
,客户端
模型和LocalAdminGroupManagement
模型
我调用这个web服务来更新数据库,我现在尝试做的另一个目的是从表中选择所有记录。在我添加localadminggroupmanagementcontroller
和localadminggroupmanagement
模型之前,所有模型都正常工作,现在当我调用web服务时,我得到异常:远程服务器返回错误:(500)内部服务器错误。
我尝试阅读文档并检查其他答案,但我还是被卡住了。如有任何想法或建议,将不胜感激。
clientscoontroller
[Produces("application/json")]
[Route("Clients")]
public class ClientsController : Controller
{
private readonly ClientHealthContext _context;
public ClientsController(ClientHealthContext context)
{
_context = context;
}
// GET: /Clients
[HttpGet]
public IEnumerable<Clients> GetClients()
{
return _context.Clients;
}
// GET: /Clients/5
[HttpGet("{id}")]
public async Task<IActionResult> GetClients([FromRoute] string id)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var clients = await _context.Clients.SingleOrDefaultAsync(m => m.Hostname == id);
if (clients == null)
{
return NotFound();
}
return Ok(clients);
}
// POST: /Clients
[HttpPost]
public async Task<IActionResult> PostClients([FromBody] Clients clients)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
_context.Clients.Add(clients);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
{
if (ClientsExists(clients.Hostname))
{
return new StatusCodeResult(StatusCodes.Status409Conflict);
}
else
{
throw;
}
}
return CreatedAtAction("GetClients", new { id = clients.Hostname }, clients);
}
private bool ClientsExists(string id)
{
return _context.Clients.Any(e => e.Hostname == id);
}
[Produces("application/json")]
[Route("LocalAdminGroupManagement")]
public class LocalAdminGroupManagementController : Controller
{
private readonly ClientHealthContext _context;
public LocalAdminGroupManagementController(ClientHealthContext context)
{
_context = context;
}
// GET: /Clients
[HttpGet]
public IEnumerable<LocalAdminGroupManagement> GetLocalAdminGroupManagement()
{
return _context.LocalAdminGroupManagement;
}
}
LocalAdminGroupManagementController
[Produces("application/json")]
[Route("Clients")]
public class ClientsController : Controller
{
private readonly ClientHealthContext _context;
public ClientsController(ClientHealthContext context)
{
_context = context;
}
// GET: /Clients
[HttpGet]
public IEnumerable<Clients> GetClients()
{
return _context.Clients;
}
// GET: /Clients/5
[HttpGet("{id}")]
public async Task<IActionResult> GetClients([FromRoute] string id)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var clients = await _context.Clients.SingleOrDefaultAsync(m => m.Hostname == id);
if (clients == null)
{
return NotFound();
}
return Ok(clients);
}
// POST: /Clients
[HttpPost]
public async Task<IActionResult> PostClients([FromBody] Clients clients)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
_context.Clients.Add(clients);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
{
if (ClientsExists(clients.Hostname))
{
return new StatusCodeResult(StatusCodes.Status409Conflict);
}
else
{
throw;
}
}
return CreatedAtAction("GetClients", new { id = clients.Hostname }, clients);
}
private bool ClientsExists(string id)
{
return _context.Clients.Any(e => e.Hostname == id);
}
[Produces("application/json")]
[Route("LocalAdminGroupManagement")]
public class LocalAdminGroupManagementController : Controller
{
private readonly ClientHealthContext _context;
public LocalAdminGroupManagementController(ClientHealthContext context)
{
_context = context;
}
// GET: /Clients
[HttpGet]
public IEnumerable<LocalAdminGroupManagement> GetLocalAdminGroupManagement()
{
return _context.LocalAdminGroupManagement;
}
}
500表示服务器引发了未捕获的异常。在开发机器上,您会看到一个屏幕,显示异常的详细信息。将异常处理和日志记录添加到代码中以记录异常。调试您的代码以查看它抛出的位置以及原因