Controller - nie działa PUT na hostingu

0

Cześć,
Potrzebuję pomocy w zapewne trywialnym problemie.
Napisałem proste API w .net core.
Gdy odpalam lokalnie - działają wszystkie metody
Zrobiłem deploy na hosting webio.pl i nie działa mi jedynie metoda PUT.

W odpowiedzi po kilku sekundach dostaje: status: 408
Request Timeout
To samo w postmanie i mojej apce front-endowej

Nie jest to problem bazy, bo lokalnie jestem tez połączony z bazą na hostingu.

KOD (dodałem tez post - który działa):
```
// POST: api/Notes
[Authorize]
[HttpPost]
public IActionResult Post([FromBody] NotesModel NewNote)
{
var identity = HttpContext.User.Identity as ClaimsIdentity;
var userid = identity.FindFirst(ClaimTypes.Name).Value;
int Userid = Int32.Parse(userid);

        if (!ModelState.IsValid)
        {
            return BadRequest();
        }
        try
        {
            return Ok(NotesRepository.AddNote(NewNote, Userid));
        }
        catch (Exception ex)
        {
            return BadRequest($"Failed: {ex}");
        }
    }


    // PUT: api/Notes/5
    [Authorize]
    [HttpPut("{id}")]
    public IActionResult Put(int id, [FromBody] NotesModel NoteEdited)
    {
        var identity = HttpContext.User.Identity as ClaimsIdentity;
        var userid = identity.FindFirst(ClaimTypes.Name).Value;
        int Userid = Int32.Parse(userid);

        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }
        try
        {
            return Ok(NotesRepository.EditNote(id, NoteEdited, Userid));
        }
        catch (Exception ex)
        {
            return BadRequest($"Failed: {ex}");
        }
    }
0

Jak po kilku sekundach, to może ten timeout jednak zbyt krótki?

0

To bardziej wygląda jak by controller nie dostawa zapytania, ale na hostingu nie wiem jak to zdebugować...

0

POST działa? A DELETE?
Mogą być włączone jakieś "zabezpieczenia", które sprawiają, że niektóre metody HTTP nie są dozwolone. Tylko wtedy byś raczej dostał 405, a nie 408. Usuń WebDAV z handlerów i modułów, i zobacz, czy zadziała.

0
somekind napisał(a):

POST działa? A DELETE?
Mogą być włączone jakieś "zabezpieczenia", które sprawiają, że niektóre metody HTTP nie są dozwolone. Tylko wtedy byś raczej dostał 405, a nie 408. Usuń WebDAV z handlerów i modułów, i zobacz, czy zadziała.

I w ogóle sprawdź też zawartość web.config, czy tam nie masz "blokady" dla innych metod niż GET/POST.

0

Szczerze mówiąc bardziej skupiam się na frontendzie, i nie za bardzo wiem o czym piszecie/gdzie to zmienić.
Aplikacja zbudowała się sama, ja dodałem tylko metody z tutoriali i lokalnie wszystko mi działa (jako bazę (connection string) wskazuje cały czas tą na hostingu).

Nie mam takiego pliku jak web.config
Jeśli powinienem dodać, wskażecie w którym miejscu i co powinien zawierać?

Metoda DELETE działa na hostingu również - co w sumie jest dziwne, skoro to kwestia zabezpieczeń.
Ogólnie całość działa ultra szybko, pobieranie JSONA z 5 000 obiektów trwa ułamek sekundy.

Taką mam konfiguracje, która automatycznie została wygenerowana przez VS Code:
https://zapodaj.net/02833f1626e48.png.html

WebHostBuilder:
https://zapodaj.net/c26eed1ab5177.png.html

Czy powinienem jakiś plik dodatkowy umieszczać na na hostingu, tak jak dla frontendu umieściłem .htaccess?

0

Jak wysyłasz tego puta?

co masz w startupie?

0

Problem rozwiązany, dziękuje wszystkim za rady ;)

ROZWIĄZANIE:
Na tym hostingu była zaznaczona opcja: Managed Code.
Ustawiłem na: No Managed Code
Wszystko ruszyło.

Zmyliło mnie że DELETE działa, i dlatego po chwili szukania odpuściłem ustawienia hostingu.
Mam pytanie o plik web.config, nie zbudował mi się taki plik na początku, powinienem go dodać sam, czy ustawienia dodać do innego pliku w obecnej konfiguracji (pliki na screenach jakie mam)?

https://zapodaj.net/02833f1626e48.png.html
https://zapodaj.net/c26eed1ab5177.png.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1