cancel
Showing results for 
Search instead for 
Did you mean: 

Issue uploading only sometimes, not everytime.

Jacob_Dahlke6
Star Contributor
Star Contributor

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()

 

2 REPLIES 2

AdamShaneHyland
Employee
Employee

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.

  • Clear the values in the Security JSON Object from the 5_tempfs.json
{  "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": {      }    }  }}
  • Re-run the utility to set the password
.\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.

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