08-19-2021 05:05 AM
I'm seeing something similar to the other post about uploading but not with EVERY upload, so far just one document that has been tested across multiple environments. The TempFS seems to be working, the DB tables have entries for multipart uploads. The certs are fine (self signed, but trusted on all machines) I hope to find out more about the unique conditions of the document today. This happened in one environment that hasn't been used then recreated in a DEV environment that has been used and had TempFS setup for a while now. Any thoughts, ideas?
TempFileStorage.Client.TempFileStorageServiceException: An error occurred while sending the request. ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. --->
System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. --->
System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)
at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context)
at System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)
--- End of inner exception stack trace ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at TempFileStorage.Client.Api.Client.<CreateMultiPartUploadAsync>d__35.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at TempFileStorage.Client.TempFileStorageClient.<InitializeMultipartUploadAsync>d__25.MoveNext()
--- End of inner exception stack trace ---
at TempFileStorage.Client.TempFileStorageClient.<InitializeMultipartUploadAsync>d__25.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Evolution.Commons.TempFile.TempFileService.<InitiateUploadAsync>d__21.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Evolution.Core.Documents.Upload.FileBackend.<CreateUploadIdAsync>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Evolution.Commons.Backends.BackendService`1.<InvokeServiceMethod>d__15`3.MoveNext()
08-19-2021 06:17 AM
Hi Jacob.
Are you running a load balanced environment? Or did you copy the 5_tempfs.json file to different machines after creating the MasterPassword? If either of these cases are correct, then there is a consideration to be aware of. The MasterPassword in the 5_tempfs.json on each server running the ApiServer is a unique value. The password used to generate the MasterPassword can be the same between environments (and MUST be the same on all servers in the load balanced pool), but you can't use the same MasterPassword on multiple machines because the value is unique per machine.
To get around this, you'll need to use the TempFileService.Configuration for the version of the software you have installed (available under Support | Software Download) to set the value on each machine. Below are the steps you'll need ...
Note, this assumes you are not using S3 for your storage. If you are using S3, there are different steps.
{ "TempFS": { "IDP": { "Scope": { "Name": "evolution" } }, "TempFileService": { "Tenant": [ { "DataSource": "Tenant_tenantName_DDL", "DataProvider": "MSSQL", "ConnectionString": "Data Source=dbserver.domain.net\\sql2016;Database=TempFSDB;Integrated Security=true;" }, { "DataSource": "Tenant_tenantName_SQL", "DataProvider": "MSSQL", "ConnectionString": "Data Source=dbserver.domain.net\\sql2016;Database=TempFSDB;Integrated Security=true;" } ], "Security": { } } }}
.\TempFileService.Configuration1.2.3.exe security set --json-config C:\inetpub\wwwroot\HylandApiServer\config\5_tempfs.json --password password
Once this is done, you'll have a new MasterPassword value.
{ "TempFS": { "IDP": { "Scope": { "Name": "evolution" } }, "TempFileService": { "Tenant": [ { "DataSource": "Tenant_tenantName_DDL", "DataProvider": "MSSQL", "ConnectionString": "Data Source=dbserver.domain.net\\sql2016;Database=TempFSDB;Integrated Security=true;" }, { "DataSource": "Tenant_tenantName_SQL", "DataProvider": "MSSQL", "ConnectionString": "Data Source=dbserver.domain.net\\sql2016;Database=TempFSDB;Integrated Security=true;" } ], "Security": { "MasterPassword": "AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA4zjFRBL8Wk+VdT8ABv2M9QQAAAACAAAAAAADZgAAwAAAABAAAABQi/xJ2xy3GSSewJxeitCSAAAAAASAAACgAAAAEAAAAP4xKP9rhJ34hA7n1ciMTKcQAAAAbDLHJWXDFxMHVtSizxSD7xQAAAAoT5vZkJaexGcCnfoX5KxSrii0wg==", "PasswordIsEncrypted": true } } }}
You'll need to recycle the Application Pool running the ApiServer.
Best wishes.
08-19-2021 10:48 AM
So, I only updated the location on 1 server. There's no load balancing in place yet. I've received a very limited drip feed from the customer building the application, but I meet in a few minutes to deep dive with them. Since I did change the location of the TempFS storage, I'm going to try updating the password, I think that's a good lead.
For the record, the syntax for updating the password is:
.\TempFileService.Configuration.exe security update --json-config 'C:\Program Files\Hyland\ApiServer\config\5_tempfs.json' --new-password
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.