Ошибка входа в службу WCF неизвестное имя пользователя или неверный пароль - PullRequest
1 голос
/ 21 июня 2009

Я новичок в службе WCF

У меня есть служба WCF, в которой я использую операции с файлами на общем диске. когда я пытаюсь писать / читать в общедоступном месте, появляется сообщение об исключении «Ошибка входа в систему - неизвестное имя пользователя или неверный пароль»

я могу выполнить файловую операцию в коде, который работает нормально, проблема в том, что я переместил весь код в службу WCF, теперь я получаю указанное выше исключение.

любая помощь будет принята с благодарностью

спасибо Винод

Ответы [ 2 ]

2 голосов
/ 21 июня 2009

Если вы говорите о службе WCF, вы имеете в виду службу Windows, в которой размещается служба WCF. Тогда я бы проверил подлинность службы Windows, если имя и пароль написаны правильно.

Если служба WCF размещена в IIS, то это может быть идентификатор пула приложений или учетной записи, действующей в качестве анонимной учетной записи IIS.

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

Исходя из вашего комментария, похоже, что это учетные данные вошедшего в систему пользователя, который пытается получить доступ к файлам. В то же время файлы находятся на другом диске. Я думаю, вы используете учетную запись пользователя, который не имеет доступа к местоположению файла.

0 голосов
/ 21 июня 2009

Vinod, для доступа к файловой системе используется учетная запись System.Security.Principal.WindowsIdentity.GetCurrent (), проверьте это. Если вы видите ASPNET, то вы не подражаете.

 <identity impersonate="true"/>

Не имеет никакого эффекта, потому что по умолчанию служба WCF не использует конвейер ASP.NET (поэтому у вас нет доступа к HttpContext). Если это не то, что вам нужно, включите совместимость с aspnet, как описано здесь .

Олицетворение ASP.NET: по умолчанию WCF запросы всегда выполняются как IIS идентификация процесса, даже если ASP.NET установить, чтобы включить олицетворение с помощью Конфигурация System.Web опция.

Решение:

<system.serviceModel>        
    <serviceHostingEnvironment aspNetCompatibilityEnabled=”true” />    
</system.serviceModel>

Существует другой способ олицетворения пользователя (лучше, потому что он не зависит от ASP.NET, поэтому не удивительно, если вы решите использовать службу Windows вместо ASP.NET, но я не проверял), посмотрите здесь .

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