Strona błędu 401 na IIS - inna na wersji produkcyjnej, inna lokalnie

0

U mnie na lokalnym IIS, gdy uwierzytelnianie się nie powiedzie wyświetla się mój komunikat: "Nie znaleziono użytkownika", status 401.
Gdy ten sam webservice wrzuciłam na serwer produkcyjny, to zamiast mojego pięknego komunikatu mam domyślny:
"401 - Unauthorized: Access is denied due to invalid credentials.
You do not have permission to view this directory or page using the credentials that you supplied."

Od czego to zależy? Jak to zrobić, żeby na produkcyjnym serwerze też się wyświetlał mój ładny komunikat? Podmiana plików errorów na serwerze nie wchodzi w grę, bo zmiany nie mogą wpływać na pozostałe webservice'y. Poza tym, mój komunikat różni się w zależności od tego, co konkretnie było przyczyną 401.

0

To jest jakieś MVC? Pokaż co masz w pliku Startup.cs

0

Po localhost na serwerze produkcyjnym jest tak samo jak i po zewnętrznym adresie?
Jak wygląda <customErrors> w web.configu?
Gdzie wrzuciłaś te errory są częścią serwisu czy wrzuciłaś je do '%SystemDrive%\inetpub\custerr'?

0

Jakieś spolszczenie do .NET/IIS zainstalowane?
Język w systemie lokalnie i na produkcji ten sam?

0

To jest jakieś MVC? Pokaż co masz w pliku Startup.cs

Nie, to jest bardzo stary webservice, oparty o pliki asmx. Nie ma pliku Startup.cs.

Po localhost jest tak samo jak i po zewnętrznym adresie?

Niestety mam problem z tym, żeby to sprawdzić, ze względu na ustawienia na serwerze produkcyjnym - nie pozwoli mi odpytać z localhosta.

Gdzie wrzuciłaś te errory są częścią serwisu czy wrzuciłaś je do '%SystemDrive%\inetpub\custerr'?

Źle wyjaśniłam. Mam metodę w asmx.cs:

[WebMethod (EnableSession = true)]
public XmlDocument IsAuthenticated(string login, string password)

Która po sprawdzeniach albo zwraca status 200 z xmlem z danymi sesji, albo 401 z xmlem zawierającym dane o błędzie. U mnie lokalnie xmle się ładnie wyświetlają i statusy są odpowiednie.
Status ustawiam tak:

this.Context.Response.Status = status;

a xml leci jako return.

Jak wygląda <customerrors> w web.configu?

Nie ma takiego wpisu w web.config i raczej nie o to chodzi.

Jakieś spolszczenie do .NET/IIS zainstalowane?
Język w systemie lokalnie i na produkcji ten sam?

Nie chodzi mi o to, że tekst jest po angielsku albo po polsku. Chodzi o to, że to nie jest mój tekst, a mój tekst daje więcej informacji, niż tylko to, czy się udało czy nie.

1
aurel napisał(a):

Status ustawiam tak:

this.Context.Response.Status = status;

No to brakuje Ci pewnie:

this.Context.Response.TrySkipIisCustomErrors = true;

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