Чтение встроенного файла с ресурса в ядре asp.net - PullRequest
0 голосов
/ 05 июня 2018

После публикации моего сайта в iis я получаю сообщение об ошибке:

Internal.Cryptography.CryptoThrowHelper + WindowsCryptographicException: система не может найти указанный файл

Myкод для чтения X509Certificate2 из встроенного файла:

X509Certificate2 certificate = null;
using (var certStream = typeof(T).Assembly.GetManifestResourceStream(resourceName))
{
    using (var memory = new MemoryStream((int)certStream.Length))
    {
        certStream.CopyTo(memory);
        certificate = new X509Certificate2(memory.ToArray(), password);
    }
}

эта ошибка произошла только в IIS для Windows Server, но если запустить Kestrel напрямую и в IIS Express, проблем не найдено.

Break point on stream

Он показывает, что файл читается как неуправляемая память.

1 Ответ

0 голосов
/ 12 декабря 2018

У меня была такая же проблема, добавив X509KeyStorageFlags.MachineKeySet сделал свое дело.

certificate = new X509Certificate2(memory.ToArray(), password, X509KeyStorageFlags.MachineKeySet);

Нашел решение здесь:

https://github.com/dotnet/corefx/issues/27358#issuecomment-385433985,

http://web.archive.org/web/20151101033040/http://blog.tylerdoerksen.com:80/2013/08/23/pfx-certificate-files-and-windows-azure-websites/

https://stackoverflow.com/a/48234395/3080858

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