- Open ms excel
- In "Data" tab choose "Get Data From" option in tool bar
- Then choose "From file" >> "From Folder"
- Choose the release drop folder
- A pop up will appear with all the files information
- Choose "Load data"
1.
2.
3.
1.
2.
3.
Steps to resolve the issue when encountering a "folder in use" message during file deployment:
The error message "trusted certificate entries are not password-protected" typically indicates an issue with the SSL/TLS configuration in a Java application. It suggests that one or more certificate entries in the truststore being used by the application are expected to have passwords, but they are not actually password-protected.
To address this issue, you can consider the following steps:
keytool
command-line tool that comes with the Java Development Kit (JDK) to examine the truststore entries. Run the following command:keytool -list -keystore <truststore-file>
Replace <truststore-file>
with the actual path and filename of the truststore.
Examine the listed certificates and ensure that any entries that require a password are indeed password-protected.
keytool
command with the -delete
option, and then add them back with the appropriate password using the -importcert
option.Exposing the web-server banner can be highlighted as a vulnerability, to avoid this it's recommended to disable default home / error pages.
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> <!-- make sure this is false --> </init-param> <load-on-startup>1</load-on-startup> </servlet>
TLS < 1.2 are flagged as unsafe versions for known CVE. Hence, TLS1.2 is the security recommendation.
Following are the steps to disable TLS < 2.o versions in Tomcat.
sslEnabledProtocols="TLSv1.2 SSLProtocol="TLS1.2"
telnet linuxhint.com 80
powershell "tnc google.com -Port 80" or powershell "Test-NetConnection google.com -CommonTCPPort HTTP"
telnet rpc.acronis.com 443
powershell "tnc www.google.com -p 443"
Steps to check the TLS Version in AES
Below screenshot for reference
Issue description:While starting Tomcat service getting below error message:
Windows could not start the Apache Tomcat 9.0 Tomcat9 on local computer. For more information, review the System Event Log. If this is a non-Microsoft service, contact the service vendor, and refer to the service-specific error code 1.
Steps to be verified:
1.Check Event viewer logs:
2.Go to Tomcat installation directory's bin folder.
3.You will see two EXEs (tomcat9.exe and tomcat9w.exe). tomcat9w.exe is a GUI application for monitoring and configuring Tomcat services. Double-click it and then go to Java tab
1) Enable the check box for Use default
2) In Java Classpath: section, specify the path to bootstrap.jar and tomcat-juli.jar. These should be present in your tomcat installation's bin directory itself:
<path_to_tomcat_installation>\bin\bootstrap.jar;<path_to_tomcat_installation>\bin\tomcat-juli.jar
Try restarting tomcat service and this should resolve the issue. If not,
4.This time, uncheck the 'Use default' option and explicitly provide path to jvm.dll in 'Java Virtual Machine' section:
For e.g, C:\Program Files\Java\jre1.8.0_241\bin\server\jvm.dll
'Java Classpath' setting was still required as explained above
What is Reverse Proxy?
In computer networks, a reverse proxy is the application that sits in front of back-end applications and forwards client requests to those applications. Reverse proxies help increase scalability, performance, resilience and security.
Issue Description:
Chat Proxy isn't working using Nginx Reverse Proxy and gives 500 internal error (Null Pointer Exception) for livechat.js file
Troubleshooting:
Check the Nginx configuration file if the required proxy headers are provided. Below are the required headers.
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Resolution:
Set the required proxy header for specific application under location and restart the nginx.
Sample Nginx Config:
server {
listen 80 default_server;
server_name _;
access_log /var/log/nginx/access.log vhost;
add_header Strict-Transport-Security "max-age=31536000;includeSubDomains;preload" always;
error_page 401 402 403 404 405 444 500 501 502 503 504 /custom_error.html;
location = /custom_error.html {
root /usr/share/nginx/html;
internal;
}
if ( $request_method !~ ^(GET|POST|PUT)$ ) {
return 444;
}
location /api/ {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://<IP-ADDR>:<PORT>;
}
}
Issue Description: MySQL-"Access denied for user 'username'@'hostname' (using password: NO)" when tried giving access in RoleBasedAccessManagement module.
Troubleshooting steps:
If confLoadMode = "local" in tmc.config then connection string should be provided like below in TMC_Data.json.
DBConnection: "Provider=mysql; Server=172.xx.x.xx;Port=3306;Database=OCM;Uid= userId; Password = password; Persist Security Info=True;"
If the application is not running in one instance say onsite but running in local lab, you may check the following:
Faulting application name: w3wp.exe, version: 8.5.9600.16384, time stamp: 0x5215df96
Faulting module name: PerfMon64.dll, version: 8.0.10977.0, time stamp: 0x59cfb3d1
Exception code: 0xc0000409
Fault offset: 0x000000000013f68f
Faulting process id: 0x2abc
Faulting application start time: 0x01d7876805c29212
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\Program Files\Microsoft Monitoring Agent\Agent\APMDOTNETAgent\V8.0.10918.0\PerfMon64.dll
Report Id: 45fe93c3-f35b-11eb-8123-005056886372
Faulting package full name:
Faulting package-relative application ID:
By default, all logs are printed to logs without any filters. You can choose to write logs that match words or loggers or level ranges.
This must be configured in Log4Net.config file of your application. Following is the sample config file:
<?xml version="1.0"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date{ABSOLUTE} [%thread] %level %logger - %message%:Extra Info: %property{testProperty}%:%exception%newline"/> </layout> </appender> <appender name="RollingFileAppender1" type="log4net.Appender.RollingFileAppender"> <file value="C:\Tetherfi\TetherfiHome\Logs\TMACWorkQueue\WQ.log"/> <appendToFile value="true"/> <rollingStyle value="Size"/> <maxSizeRollBackups value="5"/> <maximumFileSize value="2MB"/> <staticLogFileName value="true"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %level %logger - %message%:%exception%newline"/> </layout> </appender> <appender name="RollingFileAppender2" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value="E:\GIT\WorkQueue\Server\Logs\WQClient.log"/> <appendToFile value="true"/> <rollingStyle value="Size"/> <maxSizeRollBackups value="5"/> <maximumFileSize value="5MB"/> <staticLogFileName value="true"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %level %logger - %message%:%exception%newline"/> </layout> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> </appender> <root> <level value="ALL"/> <appender-ref ref="RollingFileAppender1"/> </root> <logger name="TetherfiWorkAssignmentClient.WorkItemManager" additivity="false"> <level value="ALL"/> <appender-ref ref="RollingFileAppender2"/> </logger> </log4net> </configuration>
"<filter>" tag blocks must be added the following xml block under "appender" tag. Following are the examples:
<filter type="log4net.Filter.LoggerMatchFilter"> <loggerToMatch value="TetherfiWorkAssignment.Processor"/> <acceptOnMatch value="false"/> </filter>
Each logger corresponds to a namespace and class of an application. In the sample XML provided, There is one logger "TetherfiWorkAssignmentClient.WorkItemManager" defined which will be written to a separate file. Rest all will be written to another file which is defined under "root" tag. In "root" tag, if you want to match logs of a logger and not write it, you can use the above block. This will reject all logs coming from logger "TetherfiWorkAssignment.Processor".
<filter type="log4net.Filter.StringMatchFilter"> <stringToMatch value="GenericTimerOnElapsed"/> <acceptOnMatch value="false"/> </filter>
This filter allows you to filter by search word. This is a 'contains' operation. With this block, all logs having the word "GenericTimerOnElapsed" will not be written.
<filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="INFO"/> <param name="LevelMax" value="ERROR"/> </filter>
This filter specifies to write logs of minimum type "INFO" and maximum type "ERROR". This means types below INFO such as DEBUG and types above ERROR such as FATAL will not written.
<filter type="log4net.Filter.DenyAllFilter"/>
<filter type="log4net.Filter.StringMatchFilter"> <stringToMatch value="MyFirstPhrase"/> <acceptOnMatch value="true"/> </filter> <filter type="log4net.Filter.StringMatchFilter"> <stringToMatch value="MySecondPhrase"/> <acceptOnMatch value="true"/> </filter> <filter type="log4net.Filter.DenyAllFilter"/>
What is CORS ?
Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any other origins (domain, scheme, or port) than its own from which a browser should permit loading of resources. CORS also relies on a mechanism by which browsers make a “preflight” request to the server hosting the cross-origin resource, in order to check that the server will permit the actual request. In that preflight, the browser sends headers that indicate the HTTP method and headers that will be used in the actual request.
When browser throws CORS error?
CORS is a security mechanism built into modern web browsers. It basically blocks all the HTTP requests from your front end to any API that is not in the same “Origin” (domain, protocol, and port—which is the case most of the time).
Resolution :
Inspect the error in the web browser console for which the CORS error has been highlighted. Identify the Access-Control-Request-Headers in the browser network console, add CORS filters in web.xml of the respective tomcat app (Ex: C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\tetherfi-generic-webservice-interface\WEB-INF\web.xml).
Make sure the following tags
Below is the sample web.xml for reference,
<display-name>Tetherfi Generic Web Service Interface Application</display-name>
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>https://nabilbank.tetherfilabs.com:55003</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,X-RequestVerificationToken</param-value>
</init-param>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Origin</param-value>
</init-param>
<init-param>
<param-name>cors.support.credentials</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.preflight.maxage</param-name>
<param-value>10</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Note that, CORS may still exist if any headers are missing in "cors.allowed.headers" list.
When the application fails to find and load an assembly (DLL), following exception is thrown:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The system cannot find the file specified.
For TMAC Server, version 5.0.6.3001 onwards assembly versions are printed in logs on start up. Until this version, file versions were printed.
Assembly and file versions are different.
To find assembly version, run this command in your powershell window:
([system.reflection.assembly]::loadfile("C:\Tetherfi\TetherfiHome\TMACServer\Newtonsoft.Json.dll")).FullName
Substitute your application path and assembly name here.
Once you find your assembly version, you can verify what version assembly you have and do the needful.
If this issue was due to the incorrect release and not due to wrong deployment process, report this to the developer so that release can be corrected.
For TMAC components, report to tmac@tetherfi.com
For WorkQueue components, report to wq@tetherfi.com
Sometimes copying or pasting files, texts, etc from/to Windows servers through RDP connection stops working and can be fixed by following below steps
Solution:
1. Open task manager in server and search for rdpclip.exe under the details tab and end the process
2.Type Windows+R and Enter rdpclip.exe and click OK.
When we are trying to connect VM using RDP if we received CredSSP encryption oracle remediation issue. Please follow the steps in the attached document to address this issue.CredSSP encryption oracle remediation issue.
a) Description:
Where to look for lipsip logs
note: Lipsip log path will not be mentioned in log4net.
Component | What to Check | Where to Check |
Any application which connects to CM Eg: Dialer, Textchat server | Check whether logs folder is created | Application folder path-> inside the app folder Logs folder should be created |
c) Resolution:
Create logs folder inside the app folder if not created. libsip log file will generate inside the logs folder.
a) Issue Description:
While accessing the application (TMAC/OCM/TMC..etc) in the browser, it is not accepting the Credentials provided even though it is correct.
Component | What to Check | Where to Check |
Security permission | Check whether the below access is given to the application folder | Go to the application folder path for eg D:\Tetherfi\TMAC 1. Right-click on the TMAC folder and click properties -IIS_user |
Resolution:
Add the Security Groups IIS_user, IUSR, Network service, Authenticated users in the security groups list. Follow the below steps to add.
Go to the log4net.config file under the application folder.
Change the header <log4net> to <log4net threshold="OFF"> This will stop writting the log.
Log4net.config for reference.
Before
After:
Tetherfi standard for component versioning is a 4 doted decimal number of the format M.yy.mm.dd[.r] where
e.g. Chat Server - 1.19.03.24, TMAC - 3.18.05.20, Media Server - 1.19.12.27.b
.NET Applications
All C# applications should set and maintain version in Project Properties -> Application -> Assembly Information
C++ Applications
All C++ applications should maintain a PrefixVersion.h file (where Prefix can be a application specific prefix) where the version is set. The application should log the version to log at startup.
JavaScript libraries
All JavaScript libraries should maintain version in their source code and must log it (preferably to server side logs) at startup.
Resolution:
If the above solution doesn't work, try the below approaches.
This issue usually is seen when the hosting system doesn't support the applications compiled version. It is based on the systems environment the program is going to run. Go to system information and look at the system type whether it is x64 or x32.
Based on system type get the files from release, incase a specific version of files you looking for is not found kindly request for the same.
Issue description: This is a generic SQL error, occurs during authentication.
Workaround:
The Service on local computer started and then stopped, some services stop automatically if there are not in use by other services or programs
There are many reasons why a service would stop. It is best to inspect the Event Viewer to determine the cause of the stoppage. Possible reasons include:
To go to Event Viewer search for it in Windows Search.
To check the error, click on Windows Logs -> Application and check for your service error (example pic shown below)
Rectify, solve and start the service again.
When client is communicating with servers, the operation has timed out issue can be seen in logs irrespective of component.
Description: The requesting channel which is client, is trying to connect to server but will not get response within the threshold time. Say sendTimeout is 1 min (see below), which means the response from server should be sent by 1 min. If it doesn't respond by that time then we can observe this TimeoutException.
Resolution: Increasing the sendTimeout value in the config to higher number (ex: 00:05:00 which is 5mins, HH: MM: SS) might solve the issue if the endpoint is reachable. Please refer the example config as shown below.
<binding name="WSHttpBinding_IFaxer" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="20000000" maxReceivedMessageSize="20000000" allowCookies="true">
Issue Description: This is general error which occurs when consuming service returns data size more than acceptable or default size.
Resolution:
Modify/Add or append below binding tag properties starting from “allowCookies” till the end of the binding tag in your app config file.
<bindings>
<basicHttpBinding>
<binding name="somename" allowCookies="true"
maxReceivedMessageSize="20000000"
maxBufferSize="20000000"
maxBufferPoolSize="20000000">
<readerQuotas maxDepth="32"
maxArrayLength="200000000"
maxStringContentLength="200000000"/>
</binding>
</basicHttpBinding>
</bindings>
Issue Resolution 1:
This error is generated when permission for the application pool is not given in IIS.
Permission for the application pool can be given as shown below.
Issue Resolution 2:
This error may also generate when permission for the IIS_USER is not given in IIS.
Permission for the IIS_USR can be given as shown below.
Issue Resolution 3:
This error is generated when permission for the application pool is not given in IIS.
Permission for the application pool can be given as shown below.
Issue Description:
This issue will occur when SQL Server not configured properly.
Issue Resolution:
The main reason for this type of error is
1. Invalid Certificate bind (expired/self signed)
Open certificate details and check certificate is valid and not self signed
2. Path given for certificate is wrong.
Check application configuration (app settings) section for certificate path.
3. Certificate is not binded properly in IIS
• Go to start, click on run, enter mmc, press enter
• Console window will open. Go to File and click on Add/Remove Snap-ins.
• From left pane select certificate. Click Add.
• On adding, Certificates snap-in windows will open. Select computer account. Select local computer.
• Click on finish. Click on ok twice.
• Expand certificates. Expand personal. Select certificate that you have bind in IIS.
• Right click and go to all tasks. Click manage private keys and click add.
• Go to advanced. Click on find now. From the search results, select the IIS_IUSRS
• Click on apply. Click Ok.
Steps for site bindings:
• Copy certificates given by Client team into the respective folder.
• Go to IIS, Go to Domain.
• Click on Server certificates. Click on complete certificate request.
• Enter certificate path and give certificate name. Click ok. Certificate will be listed in server certificates.
• Select default web site(under which your application is deployed).
• Click on bindings, select site bindings based on type and port(Example https 444).
• Click edit, select SSL certificate, click Ok.
Troubleshooting at application side :
Enable Trace logs. This helps to track every remote web request. Make below changes in either web.config or application.config file
<system.diagnostics> <trace autoflush="true" /> <sources> <source name="System.Net"> <listeners> <add name="System.Net"/> </listeners> </source> <source name="System.Net.Sockets"> <listeners> <add name="System.Net"/> </listeners> </source> <source name="System.Net.Cache"> <listeners> <add name="System.Net"/> </listeners> </source> </sources> <sharedListeners> <add name="System.Net" type="System.Diagnostics.TextWriterTraceListener" initializeData="D:\Application\Trace\System.Net.trace.log" /> </sharedListeners> <switches> <add name="System.Net" value="Verbose" /> <add name="System.Net.Sockets" value="Verbose" /> <add name="System.Net.Cache" value="Verbose" /> </switches> </system.diagnostics>
429:
Error comes when server has a rate limiting
1XX Series is Progress [101 Used for switching protocols from HTTP to Web Sockets]
C:\Users\User>ping 192.168.1.64Pinging 192.168.1.64 with 32 bytes of data:Reply from 192.168.1.64: bytes=32 time<1ms TTL=128Reply from 192.168.1.64: bytes=32 time<1ms TTL=128Reply from 192.168.1.64: bytes=32 time<1ms TTL=128Reply from 192.168.1.64: bytes=32 time<1ms TTL=128Ping statistics for 192.168.1.64:Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\Users\User>ping 192.168.1.6Pinging 192.168.1.6 with 32 bytes of data:Reply from 192.168.1.64: Destination host unreachable.Reply from 192.168.1.64: Destination host unreachable.Reply from 192.168.1.64: Destination host unreachable.Reply from 192.168.1.64: Destination host unreachable.Ping statistics for 192.168.1.6:Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
C:\Users\User>telnet 192.168.1.64 8080Connecting To 192.168.1.64...Could not open connection to the host, on port 8080: Connect failed
To find .NET Framework versions by viewing the registry (.NET Framework 4.5 and later)
You must have administrative credentials to run regedit.exe.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
Note that the path to the Full subkey includes the subkey Net Framework rather than .NET Framework.
Note
If the Full subkey is not present, then you do not have the .NET Framework 4.5 or later installed.
Check for a DWORD value named Release. The existence of the Release DWORD indicates that the .NET Framework 4.5 or newer has been installed on that computer.
The value of the Release DWORD indicates which version of the .NET Framework is installed.
Important
The following table lists the keys of released versions of the .NET Framework only. It doesn't list the keys of preview or pre-release versions.
Refer below link for the .NET version and key verification.
https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed