System.Security.Cryptography.CryptographicException: произошла внутренняя ошибка?

В своем проекте я использую ACS SAML Security. Здесь нам нужно предоставить сертификат клиента и закрытый ключ сервера для вызова службы, их можно установить в файле webconfig. Веб-служба работает в Azure - это нормально, но мне нужно запустить веб-службу на нашем удаленном сервере. Итак, я опубликовал проект в IIS. Но я получаю исключение ..

Возникла внутренняя ошибка.

Описание: необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительных сведений об ошибке и ее происхождении в коде.

Сведения об исключении: System.Security.Cryptography.CryptographicException: произошла внутренняя ошибка.

Ошибка источника:

Необработанное исключение было создано во время выполнения текущего веб-запроса. Информацию о происхождении и местонахождении исключения можно определить с помощью трассировки стека исключений ниже.

Трассировки стека:

[CryptographicException: An internal error occurred.]
   System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) +41
   System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx) +0
   System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags) +372
   System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password) +157
   ClassicMDM.WCFServiceWebRole.MyServiceHostfactory.GetServiceCertificateWithPrivateKey() in F:\Core\_Core\Class\trunk\test.WCFServiceWebRole\testWebService.svc.cs:172
   test.WCFServiceWebRole.MyServiceHostfactory.CreateServiceHost(Type serviceType, Uri[] baseAddresses) in F:\Core\_Core\Class\trunk\test.WCFServiceWebRole\testWebService.svc.cs:140
   System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) +530
   System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +1413
   System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +50
   System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +1172

[ServiceActivationException: The service '/testwebserviceINT/testWebService.svc' cannot be activated due to an exception during compilation.  The exception message is: An internal error occurred]
   System.Runtime.AsyncResult.End(IAsyncResult result) +901424
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +178702
   System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +136

Так что, пожалуйста, помогите мне .. как решить проблему?


person user10489    schedule 06.11.2012    source источник
comment
Ничего не могу поделать без кода, который вызывает это исключение.   -  person PhonicUK    schedule 06.11.2012
comment
Безопасная служба ACS SAML, успешно работающая в Azure .. Но мне также нужно работать в IIS. Итак, я хочу что-нибудь изменить в настройках сервера IIS? например, в учетной записи могут отсутствовать какие-то разрешения?   -  person user10489    schedule 06.11.2012
comment
Если этого нет в написанном вами коде, значит, вы публикуете не в том месте. Если это в коде, который вы написали, вам нужно опубликовать какой-нибудь источник, чтобы кто-нибудь мог помочь.   -  person PhonicUK    schedule 06.11.2012
comment
Служба '/icmdmmultiwebserviceINT/CMDMCustomerWebService.svc' не может быть активирована из-за исключения во время компиляции ...   -  person m4ngl3r    schedule 06.11.2012
comment
Какую версию IIS вы используете? Вы разрешили удостоверению пула приложений доступ к сертификату в хранилище сертификатов? или, если это физический путь, убедитесь, что у удостоверения пула приложений достаточно разрешений для чтения файла сертификата.   -  person Ramesh    schedule 06.11.2012
comment
@Ramesh: Я использую IIS6.0 и windows server2008 R2 .... Как я могу разрешить удостоверению пула приложений доступ к сертификату? дайте, пожалуйста, любую ссылку.   -  person user10489    schedule 06.11.2012
comment
Я считаю, что Windows Server 2008 R2 поставляется с IIS 7.5. В любом случае, файл сертификата хранится на жестком диске или в хранилище сертификатов?   -  person Ramesh    schedule 06.11.2012
comment
@Ramesh: сертификаты, хранящиеся в папке bin в корневом веб-каталоге IIS. Если я вызову ту же веб-службу в Azure, похоже, это сработает. Но когда я вызываю ту же службу в IIS, она не работает.   -  person user10489    schedule 08.11.2012
comment
Вроде дубликат. [См. Ответ здесь.] [1] [1]: stackoverflow.com/questions/1345262/   -  person Dror    schedule 31.05.2013