IIS zamiast uruchamiać akcje kontrolera szuka folderu o nazwie takiej jak akcja

0

Uczę się webapi i napisałem sobie przykład w C#.

Napisałem sobie kontroler mniej więcej taki:

[RoutePrefix("api/Osoby")]
    public class OsobyApiController : ApiController
    {
        private readonly IOsoby _osoby;


        public OsobyApiController()
        {
            _osoby = new Osoby();
        }

        [HttpGet]
        [Route("rodzina")]
        public async Task<IHttpActionResult> GetRodzina()
        {
          var rodzina = _osoby.GetRodzina();
           
            return Ok(rodzina);
        }
}

Odpalam projekt w Visual Studio i w przeglądarce wpisuję adres http://localhost:44377/api/osoby/rodzina. Wszystko działa dobrze, api zwraca oczekiwane dane.
Wgrałem aplikację na serwer IIS, gdzie powinna działać na adresie http://localhost:80/api/osoby/rodzina. Jednak gdy wpisuję taki adres w przeglądarce to IIS zamiast uruchomic wlasciwa akcje zwraca komunikat o braku sciezki fizycznej C:\inetpub\wwwroot\test\api\osoby\rodzina.

Da się to jakoś naprawić?

0

Z tego co wiem to IIS ma jakąś swoją domyślną stronę na porcie 80. Wyłącz DefaultWebsite, albo zmień port swojej aplikacji.

0

@AdamWox: próbowałem z tymi ustawieniami, ale to nie to.

0

Masz w ogóle zainstalowany i aktywny poprawnie ASP.NET Core Hosting Bundle?

https://docs.microsoft.com/en-us/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-5.0&tabs=visual-studio

0

@Ktos: zapomniałem dodać, aplikacja nie jest pod netcore tylko netframework

2

A jak masz zbinowaną stronę?
Skoro szuka w katalogu test a nie w głównym to albo zmień bindowanie albo spróbuj w URL dodać test

0

@jurek1980: test - to jest nazwa pod jaką witryna została dodana do IISa i w folderze tym znajdują się pliki aplikacji

1

Masz dostęp do ustawień tego iis? Tam jak wybierzesz stronę to po prawej jest coś uruchom stronę. Zobacz czy tak zadziała i jaki adres wskaże.

0

@jurek1980: mam dostep. Tak też nie działa. Odpala się adres http://localhost/, do którego po dopisaniu api/osoby/rodzina powinienem dostać prawidłowy wynik

0

Czyli physical path w ustawieniach site w IIS wskazuje na C:\inetpub\wwwroot\test\?
Application pool ma odpowiednią wersję .NET ustawioną?

0

Tak.
Application pool ma ustawione .Net CLR v4.0.30319

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