I want to deploy a .Net Framework application to ACI that has a web frontend. The programm is set to start the web service on port 8090, so I entered that in the "ports" section of the ACI setup and set a DNS name label. As far as I understood it, this should be enough to make the website publicly available, but I get the "Website not available" error message.
I ran the container locally and it works just fine. I also added the EXPOSE command to the Dockerfile, but that didn't help either. The image is based on a .Net Framework Windows Server Core 2016 image, which should work with Azure.
To anyone seeing this in the future: It seems you can only expose web interfaces on port 80.
Related
First of all I know that there are similar questions like this, but by going over all of them I realized that not single one contains all the steps to host bot on local IIS, which is why I am asking this question to collect all the info in one place. So please before flagging this as duplicate take a moment to try answer this question once and for all for everyone first.
Now that said. I have created a bot using the Bot Framework Composer and successfully published it to the Azure. Everything is working fine, but I would like to move it away from Azure to on-prem IIS server. By looking around I was only able to find these somewhat comprehensive Chinese instructions.
Steps that I did:
Install IIS
Install .NET Core Windows Server Hosting Bundle from here
Created new AppPool and set it to No Managed Code
Downloaded bot from FTP on Azure and stored in local folder
Created new website on port 8080 and pointed it to the local folder
After this I am able to reach website that is telling me that the bot is ready for use on http://localhost:3978/api/messages. But when I try to connect to it by using Bot Framework Emulator it is unable to connect and I am getting error
POST 400 directline/conversations//activities
By looking at the netstat I can see that there is actually nothing running on port 3978 which leads me to believe that the IIS is running just the website and not bot itself. Any idea what I am doing wrong?
You mentioned in 5th point that
Created new website on port 8080 and pointed it to the local folder
but you are checking the bot is running in http://localhost:3978/api/messages which is the visual studio when you run this endpoint creates i think.
can you check the endpoint with port 8080 endpoint.
I think you need a https endpoint to make the bot work and also you need to enable that IIS endpoint with public accessible in internet so that you can connect it in the bot channel registration or Azure Bot channel.
I'm trying to deploy a Loopback project to live server, all works well on local. On server, after running node ., I get the console log of:
Web server listening at: http://domainname:3000
Browse your REST API at http://domainname:3000/explorer
So it looks like the server is running.
Problem is that I get no response from the server. Neither from domain:3000 or /explorer or any endpoint I created.
Does anyone know what might be the issue?
Thank you very much
I had a similar problem when I was trying to deploy my code. Some of the possible solutions to the problem depending on where and how you are deploying it-
Check if your security group allows connections on port 3000. AWS EC2 by default closes all ports except port 80. You might have to add an exception to your security group and allow port 3000 to be accessed from everywhere.
If you are using a container, check if your container has the ports open and if the container port is accessible by the hardware hosting the container. On Azure, I faced this problem as Azure Web App Container Service by default only listens to port 80 and 8080. So I had to modify my code such that it can use the default NODE_ENV.PORT or 8080.
I have a simple web application which we recently moved over to Azure. Running in the local Azure emulator and on IIS Express, in the WebRole I have set it to run on https://localhost:12345, but when I run the project it comes up on http://localhost:63855/. Completely different port and a distinct lack of HTTPS.
Thank you in advanced,
Andrew
I can't seem to be able to deploy a site to a windows server 2012 r2 running IIS and Web Deploy in Azure VM. I have verified that the port is open, the credentials are correct and the site name as well. I tried using http: and https: also tried using msdeploy.axd end point and the MSDEPLOYAGENTSERVICE one nothing. Check is the services are running and if I can connect to the machine which at can on port 80 to the default site. Tried connecting from multiple connections I get the same result...
Could not connect to the remote computer ("<computer name>.cloudapp.net"). On the remote computer make sure that Web Deploy is installed and that the required process ("Web Deployment Agent Service") is started. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE. Unable to connect to the remote server.
After dealing with this for about an hour now, I figured out how to fix this on my Azure Virtual Machine.
First the obvious
Check that port 8172 (if you're using default settings) is open in your firewall
Check that the processes MsDepSvc and WMSVC are running.
Check that the site name is correct.
Management Service
In ISS, at the root level of the server, check your settings under Management Service.
It should have Enable Remote Connections checked:
Did you download the full package
This was the one that got me, I hadn't installed everything.
On the bottom of the WebDeploy page: http://www.iis.net/downloads/microsoft/web-deploy
You can download the full package, and then just install everything.
You don't mention if you have an endpoint configured for your Azure VM. If not, make sure you create an endpoint with a private port of 8172.
EDIT: Here is a troubleshooting guide for web deploy that includes the error message you've encountered. Additionally, from my own experience I have managed to mistype the site name and not install .NET and seeing similar errors.
Helpful but in the end in our case it was TLS mismatch. Check both machines can do TLS 1.2 if you are forcing it. Have put more detail here https://fuseit.zendesk.com/hc/en-us/articles/360000328595. Cheers
We are developing an application that we are deploying to Azure. It needs to work with a specific machine configuraiton. We we have this configured as a VM which developers can run locally.
However to test the VM configuration we need to publish to Azure and access it on a live Azure instance. Is there anyway to allow a local VM to get access to the Azure environment IIS on the developers machine? It doesn't seem to show up in IIS Express so I guess it isn't the same as a normal site?
Also is it possible to configure an Azure environment locally for testing. We want to host test applications for internal use and don't want them run on developers machines. We would like to run them on a server in the office.
Any ideas?
Thanks
I think that the answer to this question will outline the general guidelines you could follow to enable your environment.
Windows Azure Emulator has its own load balancer simulator which bind to socket 127.0.0.1:81 (most of the cases, if port 81 is free). If the Azure project is developed with Azure SDK 1.3 or later with Full IIS enabled, then the Azure Emulator (for versions 1.3 ~ 1.6) will use local IIS to host the sites. IIS Express is not involved in any way with the Azure project. If you happen to run IIS Express, then most probably you have set up your web application project as a StartUp project in the solution. The correct way to locally debug Windows Azure applications is to use the Cloud Project as a startup project.
Please kindly update your question, if there is some doubt or confusion after checking the mentioned related question.