Se produjo una excepción no resuelta y el proceso fue terminado.
ID de aplicación: /LM/W3SVC/2/ROOT
ID de proceso: 6928
Exception: System.Security.Cryptography.CryptographicException
Message: 系统找不到指定的路径。
StackTrace: 在 System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr) En System.Security.Cryptography.SafeKeyHandle._FreeHKey (IntPtr pKeyCtx) En System.Security.Cryptography.SafeKeyHandle.ReleaseHandle() en System.Runtime.InteropServices.SafeHandle.InternalFinalize() at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing) at System.Runtime.InteropServices.SafeHandle.Finalize()
Hay muchas páginas web en IIS, ¿quién sabe cuál de las páginas lanza la anomalía??? No lo digas claramente, irritable
ID de la solicitud: /LM/W3SVC/2/ROOT Esta debería ser la web donde la ciudad dice que se reporta el error, pero quién sabe qué significa esto
/LM/W3SVC/1/Root 里面各项都代表什么?
LM --- nombre del servidor local Servidor W3SVC ---- IIS 1---- Sitios web con ID de sitio 1 Raíz--- raíz del sitio
Este pasaje sigue siendo algo que encontré en Internet, y lo modifiqué ligeramente, el registro de errores "Application ID: /LM/W3SVC/2/ROOT", es decir, el error causado por la web con ID de sitio 2
o ejecutar
Podemos ver la información relevante en la página web
Descubrí dónde estaba el error y luego empecé a solucionarlo...
Al depurar localmente o publicar en un IIS local, el cifrado y el descifrado funcionan bien, pero cuando un servicio se publica en un servidor remoto, se muestra el siguiente error durante el descifrado:
System.Security.Cryptography.CryptographicException:系统找不到指定的文件。
En Util.Security.RSAUtils.decrypt(String encryptData,String privateKey) en la ubicación D:\documents\visual studio2010\Projects\MSPJK\MSPJK\RSAUtils.cs: línea número 175
En MSPJK.DAO.DAO.login(loginInfo) ubicación D:\documents\visualstudio 2010\Projects\MSPJK\MSPJK\DAO.cs: número de línea 2052
Después de encontrar mucha información, se resolvió. La solución es la siguiente:
Introduce el código:
RSACryptoServiceProvider provider = new RSACryptoServiceProvider(); Cambiado a:
CspParameters RSAParams = nuevos CspParameters(); RSAParams.Flags = CspProviderFlags.UseMachineKeyStore; System.Security.Cryptography.RSACryptoServiceProvider proveedor = nuevo RSACryptoServiceProvider(1024, RSAParams); Prueba otra vez, ¡vale!
|