Programm3r Ответов: 4

Сообщение об ошибке от поставщика: не удалось открыть контейнер ключей RSA [решено]


Всем привет,

У меня есть приложение Silverlight, что позволяет использовать его в веб.config, чтобы получить строку, это конкурентоспособная цена. Строка подключения была зашифрована с помощью утилиты RSA, которая работает на той же машине. Я получаю следующее исключение каждый раз, когда запускаю приложение Silerlight. Странно то, что он работает с другим приложением Silverlight, которое работает на том же ПК :путано:

Кто-нибудь может пожалуйста помочь мне?

- <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
- <s:Body>
- <s:Fault>
  <faultcode xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">a:InternalServiceFault</faultcode>
  <faultstring xml:lang="en-US">Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened. (C:\inetpub\wwwroot\CustomQuotes\web.config line 18)</faultstring>
- <detail>
- <ExceptionDetail xmlns="http://schemas.datacontract.org/2004/07/System.ServiceModel" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <HelpLink i:nil="true" />
- <InnerException>
  <HelpLink i:nil="true" />
  <InnerException i:nil="true" />
  <Message>The RSA key container could not be opened.</Message>
  <StackTrace>at System.Configuration.RsaProtectedConfigurationProvider.ThrowBetterException(Boolean keyMustExist) at System.Configuration.RsaProtectedConfigurationProvider.GetCryptoServiceProvider(Boolean exportable, Boolean keyMustExist) at System.Configuration.RsaProtectedConfigurationProvider.Decrypt(XmlNode encryptedNode) at System.Configuration.ProtectedConfigurationSection.DecryptSection(String encryptedXml, ProtectedConfigurationProvider provider) at System.Configuration.Internal.DelegatingConfigHost.DecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection) at System.Configuration.RuntimeConfigurationRecord.CallHostDecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfig) at System.Configuration.BaseConfigurationRecord.DecryptConfigSection(ConfigXmlReader reader, ProtectedConfigurationProvider protectionProvider)</StackTrace>
  <Type>System.Configuration.ConfigurationErrorsException</Type>
  </InnerException>
  <Message>Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened. (C:\inetpub\wwwroot\CustomQuotes\web.config line 18)</Message>
  <StackTrace>at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult) at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSection(String configKey) at System.Web.HttpContext.GetSection(String sectionName) at System.Web.Configuration.HttpConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String configKey) at System.Configuration.ConfigurationManager.GetSection(String sectionName) at System.Configuration.ConfigurationManager.get_ConnectionStrings() at CustomQuoteDashboard.Web.DataClassesDataContext..ctor() in C:\Development\Applications\Dashboards\CustomQuoteDashboard\CustomQuoteDashboard.Web\DataClasses.designer.cs:line 78 at CustomQuoteDashboard.Web.DataService.Authentication() in C:\Development\Applications\Dashboards\CustomQuoteDashboard\CustomQuoteDashboard.Web\DataService.svc.cs:line 26 at SyncInvokeAuthentication(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</StackTrace>
  <Type>System.Configuration.ConfigurationErrorsException</Type>
  </ExceptionDetail>
  </detail>
  </s:Fault>
  </s:Body>
  </s:Envelope>


Заранее большое спасибо.
С уважением,

Abhishek Pant

Неужели проблема решена? Если нет, то смените тему, так как в ней говорится какой-то текст о[решенном].Если да, пожалуйста, разместите свое решение здесь.

4 Ответов

Рейтинг:
29

J a a n s

Раньше я получал ту же ошибку, когда Web.config был зашифрован (для asp.net приложения также). Я использовал следующие команды, чтобы решить эту проблему. Не уверен, поможет ли это вам, но, пожалуйста, попробуйте.

aspnet_regiis -pc "NetFrameworkConfigurationKey" -exp
aspnet_regiis -pa "NetFrameworkConfigurationKey" "ASPNET"
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NETWORK SERVICE"
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"


Рейтинг:
20

Programm3r

Я исправил эту проблему, выполнив следующие действия:

1. Во-первых, я работал на Windows Server 2008
2. Откройте IIS
3. Перейдите к веб-узел, который является причиной проблемы
4. В разделе Безопасность в главном разделе веб-сайта нажмите кнопку 5. Значок подлинности
6. Отключить олицетворение ASP.NET

С уважением,


Рейтинг:
1

Bhanu Pratap Verma

Всем Привет,

При выполнении команды я получаю сообщение об ошибке "контейнер ключей RSA не найден".
"aspnet_regiis -pa "имя контейнера" NT AUTHORITY\IUSR" в качестве администратора.

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


Рейтинг:
0

altafsagar

на самом деле вам нужно добавить этого пользователя(под которым работает веб-сайт) в ACL
по следующей команде
aspnet_regiis -pa "NetFrameworkConfigurationKey" "имя пользователя"


Bhanu Pratap Verma

Привет ,

При выполнении команды я получаю сообщение об ошибке "контейнер ключей RSA не найден".
"aspnet_regiis -pa "имя контейнера" NT AUTHORITY\IUSR" в качестве администратора.

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