How to debug startup Errors on Azure App Service - azure

I am getting this error when my App Service starts on Azure:
An error occurred while starting the application.
I have not been able to find any relevant errors in the event logs.
How can I debug this?

I found this page very helpful:
In particular, there is a tool in Azure called Kudu Services (Under Development Tools/Advanced Tools) which lets you open a command prompt for your site, and then run dotnet your.dll
This will show you the exact error message that is occurring as if you were running it on your own localhost with all output.
Steps:
Open Kudo
Go to DEBUG CONSOLE (Top Menu), then CMD
This will open a black command window.
CD site
CD wwwroot
DIR to list contents. Find your dll in the list to ensure you are in the right location.
DOTNET your.dll
The site will then start up, or fail to start. If it fails, it will show the relevant messages so you can debug.

Related

Azure Web App - Deploying Manually through ssh terminal

I've recently deployed a NodeJs Azure Web App and using Git to trigger the deployments when I make changes to the source code. Out of curiosity I was exploring the file system of the Linux server that's running the app and found the script file that's used for deployment (deploy.sh).
Is it possible to run that script file locally on the server while in an ssh session? For example if I wanted to make a change directly on the server to a file, instead of having to push the changes up through git (probably not a good idea but I want to know if it's possible regardless).
I tried running the script whilst in the directory where it's located but it failed to find the kudu sync command, which I thought was strange.
Cheers.
yes you can run the deploy.sh file. If i am not wrong then you might be getting some error like --- can not be sub directory of each other. In this case you can try to run the deplo.sh from inside the wwwroot folder. Let me know if it works.

Deluge Windows Service

I am trying to run the DelugeD.exe as a windows service. After installing Deluge and creating the services using NSSM, I try to start the service and get the following error:
Windows could not start the Deluged service on Local Computer. The service did not return an error. This could be and internal Windows error or and internal service error. If the problem persists, contact your system administrator.
I have created the Deluge-web-debug.exe as a Windows Service and it successfully starts. When I browse to http://localhost:8112 the web client appears, however the Connection Manager shows the Deluged daemon has not started.
No error, no logs, what could be the cause?
Thanks!
I thought I would start from scratch, reinstall deluge for windows, and try again. After this it still failed.
Using nssm, the error was:
deluged: Unexpected status SERVICE_PAUSED in response to START control.
This placed the service in a perpetual Paused state.
Finally, I decided to tear down the services using nssm remove, kill any running deluge processes, then delete the Config folder where deluged was pointing.
I am certain deleting the Config folder and all files was what solved the problem, and now it starts successfully.
I think I just solved this one by checking the "Allow service to interact with desktop" box under the LogOn tab for both the Deluge daemon and the WebUI services I created with nssm:
"Allow service to interact with desktop" in services.msc

How to get logs for Application Error on Heroku

I have been trying to redeploy my app hosted on Heroku.
On every redeploy i was getting "Your app was successfully deployed."
But on opening the page i was getting:
An error occurred in the application and your page could not be served.
Please try again in a few moments.
If you are the application owner, check your logs for details.
On opening the logs under the 'Activity' tag gave me logs but it had nothing about what went wrong.
How would one get to know whats causing application error.
We could get the logs for Heroku easily from heroku shell. To get 'heroku shell' on you computer, install heroku toolbelt.
One installed, from 'cmd' login to heroku:
heroku login
Then you could get the logs:
heroku logs --app APPNAME
This works irrespective of whether you use git, github or dropbox.

Azure Storage Emulator error and does not start

This error is really driving me crazy. (Terminal running in administrator mode)
Initialization of azure storage emulator in sql server 2014:
C:\Program Files (x86)\Microsoft SDKs\Windows Azure\Storage Emulator>.\wastorage
emulator init -server MY-PC
Windows Azure Storage Emulator 3.0.0.0 command line tool
The storage emulator was successfully initialized and is ready to use.
Error when starting server:
C:\Program Files (x86)\Microsoft SDKs\Windows Azure\Storage Emulator>.\wastorage
emulator start
Windows Azure Storage Emulator 3.0.0.0 command line tool
Unhandled Exception: System.TimeoutException: Unable to open wait handle.
at Microsoft.WindowsAzure.Storage.Emulator.Controller.EmulatorProcessControll
er.InternalWaitForStorageEmulator(Int32 timeoutInMilliseconds)
at Microsoft.WindowsAzure.Storage.Emulator.Controller.EmulatorProcessControll
er.EnsureRunning(Int32 timeoutInMilliseconds)
at Microsoft.WindowsAzure.Storage.Emulator.StartCommand.RunCommand()
at Microsoft.WindowsAzure.Storage.Emulator.Program.Main(String[] args)
Check if you are running BitTorrent/uTorrent or similar software using port 10000.
Check Steve Marx' blog post about the issue. http://blog.smarx.com/posts/windows-azure-storage-emulator-the-process-cannot-access-the-file-because-it-is-being-used-by-another-process
In case that post disappears, the command to check if any other software is using that port is:
C:\Users\smarx>netstat -p tcp -ano | findstr :10000
TCP 127.0.0.1:10000 0.0.0.0:0 LISTENING 3672
Summarizing and adding additional points to other answers to this question.
Open C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe file in a notepad or a notepad++ editor.
Look at the services section.
<services>
<service name="Blob" url="http://127.0.0.1:10000/"/>
<service name="Queue" url="http://127.0.0.1:10001/"/>
<service name="Table" url="http://127.0.0.1:10002/"/>
</services>
Try to open URL for "Blob" in a web browser.
In my case it is
http://127.0.0.1:10000/
If you are unable to open the URL or if there is a error, this is the reason why you are not unable to start Azure Storage Emulator.
Try below steps to resolve the issue.
1) Check if the port 10000 is busy or used by any other process.
To know this you can type the below command in the command prompt
netstat -na | find "10000"
Kill the process.
Now start the Azure Storage Emulator in -inprocess mode
In the Azure Storage Emulator's command prompt type
AzureStorageEmulator.exe start -inprocess
Ctrl+c and then
AzureStorageEmulator.exe start
If this did not resolve the issue try second step.
2) Run this
netsh http add iplisten 127.0.0.1
and then in the Azure Storage Emulator's command prompt type
AzureStorageEmulator.exe start -inprocess
Ctrl+c and then
AzureStorageEmulator.exe start
I have same issue after Azure tools update (2.3 version). After hours of research I found strange solution - set 'Start Windows Azure storage emulator' to 'False' (in properties of Azure project).
The issue maybe port 10000 is being occupied. Storage emulator runs on port 10000. So you need to kill that process. On windows, open cmd as admin and run following commands.
First find the process occupying port 10000
netstat -ano | findstr :10000
kill the process
taskkill /PID <process id> /F
Now try starting emulator again.
In the file C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe.config
you need to change port numbers:
Make sure the user that initialized the emulator is the same as the user that is starting the emulator. Note that if you elevate as a different user to run initialization, then the initialization only applies to that user.
If that doesn't help, you can try to launch the emulator with the -inprocess flag to get a more detailed error message:
WAStorageEmulator start -inprocess
Run Microsoft Azure Command Prompt as administrator and try to first initialize using AzureStorageEmulator.exe init and then start using AzureStorageEmulator.exe start commands. It worked for my case.
I had same issue since I had to rejoin my machine to the domain and the user profile got recreated.
I noticed that it was starting with option -inprocess from elevated cmd.
Then I realized that it has to do with urlac and I solved deleting old ones with following commands:
(from elevated cmd)
netsh http delete urlacl url=http://127.0.0.1:10000/
netsh http delete urlacl url=http://127.0.0.1:10001/
netsh http delete urlacl url=http://127.0.0.1:10002/
After that simply start as usual, the tool will recreate what necessary.
Now I can use it without elevation.
It is also worth to try to run the command prompt with: "Run As Administrator"
and then run the command:
C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator>AzureStorageEmulator.exe start
That did the trick for me!
Another option is to change the ip binding that the emulator uses in the config file located in the storage emulator directory.
Find wastorageemulator.exe.config
and change
<services>
<service name="Blob" url="http://127.0.0.1:10000/"/>
<service name="Queue" url="http://127.0.0.1:10001/"/>
<service name="Table" url="http://127.0.0.1:10002/"/>
</services>
This would be usefull if another application is already using that port and you cannot uninstall.
if you are trying to start "Azure storage emulator" through Visual Studio=>Server explorer, make sure that you are starting visual studio as an administrator.
I was able to get this issue fixed by running the "Azure storage emulator" on the command prompt, by running the command prompt as an administrator.
open command prompt as administrator
run command: cd C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator
run command: AzureStorageEmulator start
There is some info here that might help:
AzureStorageEmulator.exe init –server MyMachine –sqlinstance **.** –forcecreate –inprocess
See this link.
I just hit this, and it turns out that Microsoft Teams was using port 10000. Forcing teams to quit resolved the issue. 🤷
For me there was nothing running on the needed ports, the issue was that Visual Studio was not started in Administrator mode so the process couldn't be started.
When I went to the Azure Storage Emulator CLI from "Start" that launches a command shell that is also not in Administrator mode which obviously produces the same result.
Opening a command shell in Admin mode did the job.
Windows Backup Agent was running on my VM box on port 10000 - moving to 10003 (via the .exe.config file worked)
First you should initialize the emulator database and configuration be starting
AzureStorageEmulator.exe as administrator with a key init:
AzureStorageEmulator.exe init
Then, if you still receive an error:
Service Status: Blob http://127.0.0.1:10000/ False
The process cannot access the file because it is being used by another process
Error: Unable to start the storage emulator.
try to change 127.0.0.1 to localhost for all services in
C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe.config
It worked for me:
Press the Windows key and search "Azure Storage Emulator"
It shows me an error message "..Cannot create the database "AzureStorageEmulatorDb510"
I opened the SSMS and looked for that database but I found "AzureStorageEmulatorDb59"
I renamed the database to "AzureStorageEmulatorDb510"
Try again run "Azure Storage Emulator"
The reason for me was Hyper-V. It reserves a lot of ports. You can check reserved ports netsh int ip show excludedportrange protocol=tcp. Easiest solution - change ports in config file.
I had the same problem, I tried many ways, nothing was blocking port 10000. I tried updating the emulator config to Localhost instead of 127.0.0.1 here
<services>
<service name="Blob" url="http://127.0.0.1:10000/"/>
<service name="Queue" url="http://127.0.0.1:10001/"/>
<service name="Table" url="http://127.0.0.1:10002/"/>
</services>
but I had the timeout issue again.
Finally, I had to uninstall my IIS. and problem solved. there should be a way to make them work together.
I have had this happen recently, and it was because I'd recently installed the HDInsight emulator. It appears this was auto-starting the storage emulator causing an error when VS attempted to start it resulting in an error.
Setting the "Start Microsoft Azure storage emulator" value to False worked in this case also.
I encountered the same problem. I found out that, the port 10000 is being used by another process. In my case, utorrent was using it. It could be Bittorrent if that's what you are using. After uninstalling it, it started smoothly with altering my data.
If your torrent downloader means so much to you, you can consider solving your issue from that angle. I hope this works.
For users of the newly released documentdb emulator...Microsoft thought it is a good idea that the documentdb emulator uses the same port as the Storage emulator ;) The only way you can access your storage is by shutting down documentdb emulator and restart Visual Studio and voila you can use it again :facepalm:
I got similar issue with visual studio while trying to run Azure Functions. AzureStorageEmulator.exe init worked for me
I experienced a power outage and after rebooting received the Unhandled Exception: System.TimeoutException message attempting to launch and debug an Azure Functions project from Visual Studio 2019. I tried many (if not all) of the other suggested answers on this thread to no avail. Including but not necessarily limited to ...
Checking for processes using ports 10000-10002, (none were)
Running Visual Studio and/or AzureStorageEmulator as administrator
Deleting / recreating the storage database
Attempted netsh http add iplisten 127.0.0.1 etc. from #Ram Pratap's answer
Changed hostname and port number bindings
Tried AzureStorageEmulator init and AzureStoreEmulator start -inprocess
What finally worked for me was ...
Installing the Storage Emulator using the standalone installer
This then allowed me to fully uninstall just the Storage Emulator using Add & Remove Programs, followed by a restart.
Next I reinstalled the Storage Emulator using the standalone installer, followed by a restart.
Finally I ran AzureStorageEmulator start it worked!
Had the same issue, deleting the AzureStorageEmulatorDb510* files in my user folder(C:\Users{UserName}) and running C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator>AzureStorageEmulator.exe init /forceCreate solved it for me. I was then able to start with AzureStorageEmulator.exe start.
Also ran the Cmd.exe in administrator mode.
Had the same issue, node.exe is usually the one using port 127.0.0.1:1000 to 10003, which are used for StorageEmulator as well. so easy solution to try is, kill the node process from task manager,
Also test by stopping the IIS (if on windows) and test if everything works fine.
In my case AzureStorageEmulator.exe was throwing this error because i updated my VS 2022 and it installed azurite with it which was holding the port :10000.
I solved this by ending the task in Task Manager
As pointed out by Dale Francis in one of the comments of top answer
IDK but none of the solutions work for me. Then accidently I noticed an icon in my taskbar hidden items. It was showing me that my computer emulator is shutdown. Once I start the emulator by following the shown steps it is working fine.

Dokku showing errors in console

I have node.js app which I deploying with Dokku, for the first after deployment app crashed and Docker container closed, so I checked my project on my computer again and found error. How can I debug errors on Dokku? Is there any console?
What you want is to see logs of the container running your node.js app. But as the container is closed you cannot attach to it to see outputs from stdout and stderr.
You can however see logs of closed containers.
To do so, first run docker ps -a, this will output even closed containers.
Then use docker logs <container-id> with the id of the closed container to fetch logs and debug your app.
I have an easier solution if you don't feel like messing with process management.
Dokku provide tools to help you manage your apps from the client.
The dokku-toolbelt is installed with npm :
npm install -g dokku-toolbelt
Once installed, open the command line from your app directory (or cd to it).
Now that you are in the good directory, you can use dt logs to see the latest console log.
If you want more "real time" logs, type dt logs -t. You can now see every console.log() (and more) from you nodejs dokku app.
Happy debug !

Resources