System.Private.Uri: el valor no puede ser un error nulo con la función de Azure
Creé una función C # Azure en Visual Studio Code. Cuando ejecuto la función en Visual Studio Code, aparece el siguiente error:
[8/21/2020 1:27:34 AM] A host error has occurred during startup operation '803d7235-e81a-4768-a68d-15fcd93d8518'.
[8/21/2020 1:27:34 AM] System.Private.Uri: Value cannot be null. (Parameter 'uriString').
[8/21/2020 1:27:34 AM] Stopping JobHost
Value cannot be null. (Parameter 'provider')
¿Cómo puedo arreglarlo?

Respuestas
Hay un par de cosas que puede verificar:
- Si usamos cualquier punto final de conexión y leemos el valor de appsettings. Si es así, verifique el valor de esa configuración.
- Confirme si estamos utilizando un punto final de conexión de bus de servicio válido en este caso. ( si hay alguno)
Éstas son explicaciones muy genéricas para el planteamiento del problema, ya que no proporcionan más detalles. En el caso de las funciones, muchas veces vemos este error porque si el valor de la cadena de conexión se lee desde Azure Key Vault y no puede establecer este valor en la configuración de la aplicación de la configuración de la función de Azure. En este escenario, se crea una directiva de acceso en la configuración de Key Vault para que la aplicación de función de Azure pueda leer los valores de Key Vault. Por lo tanto, debe volver a verificar las políticas de acceso para asegurarse de que los valores de configuración de la aplicación de las claves tengan valores válidos.
Esto parece ser un problema genérico en el que si algún servicio azul no puede conectarse a ningún otro servicio mediante un Uri
, verá este error. Parece que lo obtiene si el problema ocurre antes de la invocación, es decir, en Startup.cs
. Así que verifique que todas sus Uri
llamadas tengan la URL / cadena de conexión correcta.
Para mí, el problema fue esta línea en mi inicio:
builder.AddSecretClient(new Uri(Environment.GetEnvironmentVariable("KeyVaultUrl")));
Esa variable de entorno era nula.
Para mí, el problema era que había pegado un valor de cadena de conexión incorrecto en local.settings.json
, en lugar de "EndPoint=...
tener"\"Endpoint=...