Ошибка «HTTP status 401: Access Denied» для веб-службы, даже если виртуальный каталог разрешает анонимный доступ - PullRequest
5 голосов
/ 28 октября 2008

У меня есть веб-служба, размещенная на другом сервере, и флажок Anonymous Access CheckBox в IIS уже проверен. когда мое локальное веб-приложение пытается получить доступ к веб-службе, я по-прежнему получаю «Запрос не выполнен с состоянием HTTP 401: доступ запрещен» ошибка. мое веб-приложение вызывает веб сервис, подобный следующему:

MyObject.WebService ws = new MyObject.WebService (); ws.Retrieve (someParams);

что мне здесь не хватает?

Ответы [ 6 ]

11 голосов
/ 28 октября 2008

Здесь - хороший справочник по диагностике ошибок 401.

Исходя из этого, для начала рассмотрим учетные данные, которые вы настраиваете для анонимного пользователя. Если они неверны (если, возможно, пароль пользователя был изменен в другом месте), вы получите HTTP 401.

2 голосов
/ 28 октября 2008

Убедитесь, что ваши права доступа к каталогу также разрешены для всех. Много раз занимаясь локальной разработкой, я забуду, что доступ к каталогу имеет отдельный набор разрешений, которые необходимо изменить.

Ура!

1 голос
/ 18 октября 2012

Проверьте это http://www.c -sharpcorner.com / UploadFile / mahesh / 40107282006095201AM / 401.aspx .

//Assigning DefaultCredentials to the Credentials property //of the Web service client proxy (myProxy). myProxy.Credentials= System.Net.CredentialCache.DefaultCredentials;

Этот код работал для меня.

0 голосов
/ 03 ноября 2008

Я думаю, что может случиться так, что вы получаете разрешение 401 - отказано, но неясно, кому отказано в разрешении. Я предполагаю, что в этот момент вы проверили разрешения NTFS на компьютере и подтвердили, что у вас есть доступ.

Далее я бы посмотрел, какую учетную запись использует пул приложений. Если это настройка по умолчанию, вероятно, это будет учетная запись сетевой службы NT. Если это так, убедитесь, что учетная запись имеет доступ к каталогу приложения. Если это так, то это может быть настройка безопасности COM +. По умолчанию ваша учетная запись сетевой службы не имеет разрешения на удаленный запуск компонентов. Если это так, то вы увидите ошибки в системе и журнале безопасности, в которых будет указано, что что-то связывает: «Невозможно запустить компонент»

Просмотр файлов журналов IIS и журналов событий системы и безопасности на сервере iis часто дает больше подсказок.

Надеюсь, это поможет С уважением Рихан Мейдж

0 голосов
/ 28 октября 2008

Попробуйте следующее (обратите внимание на PreAuthenticate thingy):

MyObject.WebService ws = new MyObject.WebService(); 
ws.PreAuthenticate = true;
response = ws.Retrieve(someParams);

Для более подробного объяснения, почему это может работать, вы можете сослаться на следующий ответ здесь http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/3ae9753d-2d97-45b9-9ba2-6d551fe60a48/.

0 голосов
/ 28 октября 2008

Вы пытаетесь отменить выбор разрешения iis для управления паролем несколько раз, которые выходят из приемника.

попробуйте сайт, и он может работать. после этого вы сможете снова включить контроль

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...