Получил «401 - Несанкционированный» при попытке моей службы данных WCF на IIS - PullRequest
3 голосов
/ 18 августа 2011

Я разработал Службу данных WCF, которая работает нормально, я могу выполнить любую операцию, какую захочу.

Я разработал небольшой клиент на c #, который проверяет все функции: добавление, удаление, изменение, получение данных.

Все отлично работает на моем сервере Visual Studio, но как только я нахожусь на IIS Server:

  • Я могу добавлять / извлекать данные
  • Я не могу редактировать данные

Когда я пытаюсь отредактировать данные, я получаю эту ошибку:

System.Data.Services.Client.DataServiceRequestException не обрабатывается
Сообщение = Une erreur s'est produitelors du traitement de cettequête.
Source = System.Data.Services.Client
StackTrace:
à System.Data.Services.Client.DataServiceContext.SaveResult.HandleBatchResponse ()
à System.Data.Services.Client.DataServiceContext.SaveResult.EndRequest ()
à System.Data.Services.Client.DataServiceContext.SaveChanges (параметры SaveChangesOptions)
à System.Data.Services.Client.DataServiceContext.
à WSTester.Program.ModifySomeThings (сущности) dans D: \ Workspace \ 10067.GfK
Telecontrol.TOM \ Release \ V3.1 \ WSTester \ Program.cs: ligne 90
à WSTester.Program.Main (String [] args) dans D: \ Workspace \ 10067.GfK Telecontrol.TOM \ Release \ V3.1 \ WSTester \ Program.cs: ligne 23
à System.AppDomain._nExecuteAssembly (сборка RuntimeAssembly, String [] args)
à System.AppDomain.ExecuteAssembly (файл String AssemblyFile, сборка доказательствSecurity, String [] args)
à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly ()
à System.Threading.ThreadHart(Состояние объекта)
à System.Threading.ExecutionContext.Run (обратный вызов ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта, Boolean ignoreSyncCtx)
à System.Threading.ExecutionContext.Run (вызов ExecutionContext executeContext, StateCallback) вызывать1032 * System.Threading.ThreadHelper.ThreadStart ()
Внутреннее исключение:
System.Data.Services.Client.DataServiceClientException
Message = Strict // EN "" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">



401 - Несанкционированный: доступ запрещен из-за недействительных учетных данных.

.content-container{background: #FFF; ширина: 96%; отступ: 8px; отступ: 10px; позиция: относительная;} ->



Ошибка сервера




401 - Несанкционированный: доступ запрещен из-за неверных учетных данных.


У вас нет прав для просмотра этого каталога или страницы с использованием предоставленных учетных данных.





Source = System.Data.Services.Client
StatusCode = 401
StackTrace:
à System.Data.Services.Client.DataServiceContext.SaveResult.d__1e.MoveNext ()
InnerException:

Что странно, поскольку у меня есть все права в моей службе данных WCF (и она работает с Visual Studio),и я в анонимном режиме в IIS, поэтому я должен иметь все права на выполнение этого запроса.IIS_USR имеет полный контроль над веб-папкой, поэтому я действительно не вижу, в чем может быть проблема

Ответы [ 3 ]

6 голосов
/ 03 октября 2013

Я только что исправил свой, предоставив «полный контроль» учетной записи «IUSR» для папки WCF.Это все, что я сделал, и это сработало.

2 голосов
/ 18 августа 2011

Я запустил его с пользовательским пользователем, и теперь он работает, поэтому, если у вас возникла эта проблема, вы можете попробовать на сервере IIS следующее:

  1. Создать пользователя Windows;
  2. Дайте ему права на чтение / запись / изменение / выполнение / ... для вашей папки службы данных WCF;
  3. Создайте новый пул приложений с .NET 4, интегрированным режимом и этим пользователем;
  4. При аутентификации веб-сайта включите только анонимный режим и установите для пользователя «Идентификатор пула приложений».
2 голосов
/ 18 августа 2011

Попробуйте использовать функции олицетворения пула приложений для пользователя, у которого есть разрешения.В прошлом у меня было много проблем с использованием функций IIS 7 по умолчанию AppPoolIdentity, и я обычно назначал его либо для настройки пользователя для этой цели, либо для настройки сетевой службы.у пула нет необходимых разрешений для правильного выполнения.

...