اجرا نشدن api ها روی سرور
سلام
من یه پروژه دات نت کور نوشتم که پنل مدیریت داره با ی سری api ها. تو لوکال وقتی api هارو با پستمن تست میکنم کامل اجرا میشه. الان من پروژه رو پابلیش کردم بردم رو سرور. پنل مدیریتی از سرور اجرا میشه ولی api ها رو با پستمن از سیستم خودم که تست میکنم اصلا اجرا نمیشن. ای پی سرور رو هم درست وارد میکنم.
ممنون میشم کمک کنین
خب شما باید کدهایی کهنوشتید رو قرار بدید تا بشه علت رو بررسی کنیم. با توضیحات به تنهایی هیچ کمکی نمیشه کرد متاسفانه.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using ZabanBackend.Models;
using ZabanBackend.Models.Services;
using ZabanBackend.Models.UnitOfWork;
using ZabanBackend.Models.ViewModels;
namespace ZabanBackend.Areas.AdminPanel.Controllers
{
[Produces("application/json")]
[Route("api/AdviceApi")]
[Area("AdminPanel")]
public class AdviceApiController : Controller
{
private readonly IUnitOfWork _context;
public AdviceApiController(IUnitOfWork context)
{
_context = context;
}
//ذخیره سوال کاربر اپ در ذیتابیس
// api/AdviceApi
public IActionResult Create([FromBody] AdviceViewModel viewmodel)
{
//create
Advice model = new Advice();
model.AppUsersId = viewmodel.AppUserID;
model.Question = viewmodel.Question;
_context.AdviceRepositoryUW.Create(model);
_context.save();
return CreatedAtRoute("FindAdviceById", new { id = model.AdviceId }, model);
}
//نمایش یک مشاوره خاص
//api/AdviceApi/id
[HttpGet("{id}", Name = "FindAdviceById")]
public string GetAnswerById(int id)
{
var item = _context.AdviceRepositoryUW.GetById(id);
if (item == null)
{
NotFound();
}
return item.Answer;
}
[HttpPut("{id}")]
public IActionResult Update([FromBody] Advice model)
{
var query = _context.AdviceRepositoryUW.GetById(model.AdviceId);
if (query == null)
{
NotFound();
}
query.Seen = model.Seen;
_context.AdviceRepositoryUW.Update(query);
_context.save();
return NoContent();
}
}
}
ببینید بهتره در کنترلر خودتون به جای
[Route("api/AdviceApi")]
بنویسید
[Route("api/[controller]")]
در واقع مسیر رو کلی تعریف کنید.
در مرحله بعد در بالای کنترلر از دستور زیر هم استفاده کنید
[ApiController]
و در انتها هم بهتره که Api های خودتون رو در هیچ Area قرار ندید. همه WebApi ها رو بیارید در کنترلر اصلی پروژه. میتونید توی پوشه Controller اصلی پروژه یک پوشه جدید ایجاد کنید به نام ApiController و Api ها رو اونجا قرار بدید. مثل تصویر زیر
همه این موارد رو تست کنید اگر نشد و خطا داشتید یک بار حتما از لینکی که توی Postman قرار می دید و تنظیمات Postman یک عکس هم بذارید.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2