Saya membuat REST API ini di Visual studio 2019 di .net core dan di kelas controller, saya memiliki kode berikut:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using RecLoadAPI.DAL;
namespace RecLoadAPI.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class RecLoadPrimeController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }

        [Route("RecLoadPrime/insertRecLoadData/{RecStartDate}/{RecEndDate}")]
        [HttpPost]
        public void insertRecLoadData(string RecStartDate, string RecEndDate)
        {
            RecLoadDataProvider dataProvider = new RecLoadDataProvider();
            dataProvider.InsertCardsData(RecStartDate, RecEndDate);
        }
    }
}

Saya mencoba menguji kode saya melalui Postman dan saya menulis URL ini:

https://localhost:44306/api/RecLoadPrime/insertRecLoadData/?RecStartDate=01/01/2020&RecEndDate=01/02/2020

Di Tukang Pos dan saya terus mendapatkan kesalahan yang mengatakan Nama tidak ditentukan. Saya tidak yakin apa yang saya lakukan salah. Saya sangat baru di REST API. Di bawah ini adalah tangkapan layar dari Tukang Pos.

enter image description here

Di bawah ini adalah gambar skrip PreRequest saya:

enter image description here

Skrip Pra Permintaan benar-benar kosong sekarang. Saya mendapatkan kesalahan yang berbeda sekarang:

HTTP Error 500.30 - ANCM In-Process Start Failure

Di bawah ini adalah kesalahannya:

<!DOCTYPE html>
<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta charset="utf-8" />
    <title> HTTP Error 500.30 - ANCM In-Process Start Failure </title>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Arial, Helvetica, sans-serif;
            font-size: .813em;
            color: #222;
            background-color: #fff;
        }

        h1,
        h2,
        h3,
        h4,
        h5 {
            /*font-family: 'Segoe UI',Tahoma,Arial,Helvetica,sans-serif;*/
            font-weight: 100;
        }

        h1 {
            color: #44525e;
            margin: 15px 0 15px 0;
        }

        h2 {
            margin: 10px 5px 0 0;
        }

        h3 {
            color: #363636;
            margin: 5px 5px 0 0;
        }

        code {
            font-family: Consolas, "Courier New", courier, monospace;
        }

        body .titleerror {
            padding: 3px 3px 6px 3px;
            display: block;
            font-size: 1.5em;
            font-weight: 100;
        }

        a {
            color: #1ba1e2;
            text-decoration: none;
        }

        a:hover {
            color: #13709e;
            text-decoration: underline;
        }

        li {
            margin: 5px;
        }
    </style>
</head>

<body>
    <h1> HTTP Error 500.30 - ANCM In-Process Start Failure </h1>

    <h2> Common causes of this issue: </h2>
    <ul>
        <li> The application failed to start </li>
        <li> The application started but then stopped </li>
        <li> The application started but threw an exception during startup </li>
    </ul>

    <h2> Troubleshooting steps: </h2>
    <ul>
        <li> Check the system event log for error messages </li>
        <li> Enable logging the application process' stdout messages </li>
        <li> Attach a debugger to the application process and inspect </li>
    </ul>

    <h2>
        For more information visit:
        <a href="https://go.microsoft.com/fwlink/?LinkID=2028265">
            <cite> https://go.microsoft.com/fwlink/?LinkID=2028265 </cite></a>
    </h2>

</body>

</html>

Bantuan apa pun akan sangat dihargai.

0
Anjali 13 Maret 2020, 18:36

1 menjawab

Jawaban Terbaik

Pertama, jika Anda memiliki [Route("api/[controller]")] maka Anda tidak memerlukan nama pengontrol (RecLoadPrime) di sini [Route("RecLoadPrime/insertRecLoadData/{RecStartDate}/{RecEndDate}")] karena URL akan menjadi

https://localhost:44306/api/RecLoadPrime/RecLoadPrime/insertRecLoadData

Kemudian, jika itu adalah permintaan POST, akan lebih baik menggunakan badan permintaan dengan JSON daripada parameter rute/kueri. Tapi itu terserah Anda.

Jika Anda ingin memasukkan tanggal di URL maka Anda memiliki 2 opsi

  1. Gunakan string kueri: [Route("RecLoadPrime/insertRecLoadData")] maka URL akan menjadi http://localhost/api/RecLoadPrime/insertRecLoadData?RecStartDate=01/01/2020&RecEndDate=01/02/2020

  2. Gunakan parameter rute: [Route("RecLoadPrime/insertRecLoadData/{RecStartDate}/{RecEndDate}")] maka Anda perlu menyandikan nilai sebelum mengirim http://localhost/api/RecLoadPrime/insertRecLoadData/01%2F01%2F2020/01%2F02%2F2020, dan mendekode di controller.

Lihat jawaban ini untuk memperbaikinya:

Kesalahan HTTP 500.30 - Kegagalan Mulai Dalam Proses ANCM

1
Roman Marusyk 13 Maret 2020, 16:49