Я получаю сообщение об ошибке Access is Denied, когда использую инструмент strong name для создания нового ключа для подписи сборки .NET. Это отлично работает на машине Windows XP, но не работает на моей машине Vista.
PS C:\users\brian\Dev\Projects\BELib\BELib> sn -k keypair.snk
Microsoft (R) .NET Framework Strong Name Utility Version 3.5.21022.8
Copyright (c) Microsoft Corporation. All rights reserved.
Failed to generate a strong name key pair -- Access is denied.
Что вызывает эту проблему и как ее устранить?
Запускаете ли вы PowerShell или Command Prompt от имени администратора? I обнаружил, что это первое место, которое нужно искать, пока вы не привыкнете к User Access (Доступ пользователя) Control или путем отключения User Access Управление отключить.
Да, я пробовал запускать PS и обычную командную строку от имени администратора. Появляется одно и то же сообщение об ошибке.
Да, я пробовал запускать PS и обычную командную строку в качестве администратора. То же самое сообщение об ошибке появляется.
Другим возможным решением может быть то, что вам необходимо предоставить учетной записи пользователя доступ к контейнеру ключей, расположенному по адресу C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
Запускаете ли вы PowerShell или командную строку от имени администратора? Я обнаружил, что это первое место, где нужно искать, пока вы не привыкнете к User Access Control или не отключите User Access Control.
Почему бы не запустить sysinternals Process Monitor и посмотреть, что вы можете увидеть, это первое, что я всегда делаю, когда получаю любое сообщение об отказе в доступе?
http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
Только обновить это немного: Я столкнулся с той же проблемой на Vista. У моего местного пользователя на PC не было проблемы, но тогда мы переключились на область, и мой пользователь области (хотя имея местные права администратора) получил " Доступ Denied". Я предоставил свои пользовательские права доступа области к C:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys , и это зафиксировало его.
Некоторые люди восстанавливают свои машины, чтобы решить эту проблему, но она может быть решена, предоставив пользовательский доступ к ключевому контейнеру C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys Каждый контейнер создал использование sn.exe-i, расположен в каталоге MachineKeys (если Вы не определяете в другом месте). Емкость для ключа по умолчанию, которая используется sn.exe, находится также в том месте.
В случае, если Вы перезагружаете свой ключевой контейнер к новому и забываете, где это.. Вы можете перезагрузить ключевой контейнер для сильной полезности имени, используя sn.exe-c. Так, если доступ к счету фиксирует doesn' t работа, Вы можете использовать дополнительный ключевой магазин, таким образом, сброс может быть в порядке.