Hosting Microsoft BOT on Enterprise Cloud? - bots

We are trying to host the BOT on the Enterprise server IIS server which is an internet server visible to Microsoft and other outside public domains.
So, after hosting the BOT on the enterprise cloud server we would get an endpoint ex: https://myenterpriseserver.com/api/messages.
Can I use the above endpoint to register the bot in the microsoft's dev.botframework.com?
Please help, as we are planning for a large scale implementation of the BOT.
Thanks,
Mahesh

As long as the server has a SSL Certificate it should work assuming you deploy the bot correctly. Test it out first by using the Bot Emulator to see if you can send a receive messages from a computer in your system's network. Next try registering the bot on Microsoft's Bot Framework and seeing whether Microsoft's Bot Connector service can connect to the bot successfully.
Your system/intranet may block outside messages from Microsoft in which case you will have to change some settings, etc. with your firewall. This GitHub Issue follows an issue with white-listing Microsoft's Bot Connector service.

Related

Hosting bot locally on IIS

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.

Upgrade to WebSocket is required. Error when browse to folder api messages for bot deployed in azure

I have created a LivePerson Bot for handoff as per sample code. It works fine when I run it locally from emulator but. When I deploy it in azure, My messages from Liveperson agent to Azure Bot are not reaching to bot. At the same time I also get the error "Upgrade to WebSocket is required" when I browse URL api/messages of a deployed bot. Can anybody help me here. What can be probalble reasons?
Live Person proxy bot sample can be found here.
https://github.com/microsoft/BotBuilder-Samples/tree/main/experimental/handoff-library/csharp_dotnetcore/samples/LivePersonProxyAssistant
Best Regards
Check this setting in the WebApp configuration:

Is it necessary for a microsoft teams bot to be accessible publicly?

In "Get started on the Microsoft Teams platform with C#/.NET and App Studio" its stated that
Remember that apps in Microsoft Teams are web applications exposing
one or more capabilities. For the Teams platform to load your app,
your app must be reachable from the internet.
Is it enough to have the application available for the user who is working with teams (like in the local network) or does the internet mean the internet here?
When user types in command in chat textbox in Microsoft Teams, this is routed to backend chat service which then calls your bot endpoint specified in Bot setting. That's the reason having user and code on the same network won't help. Your bot has to be publicly accessible over internet. Here is simple bot flow:
In this case, the internet means the internet.
To expand upon this a bit, your bot can be deployed locally or on your own servers, but it must have a publicly accessible endpoint as the communication is routed through Microsoft Chat Services, and does not hit your bot directly.

Hosting Bot(Microsoft Bot Framework) in public domain [duplicate]

This question already has answers here:
Bot Framework without Azure possible?
(5 answers)
Closed 5 years ago.
I have made a Bot using Microsoft Bot Framework and I want to host it in some other server than azure. I want to connect it to Microsoft BotFramework Webchat .
So please help me to connect the the three things
1-Bot Code running on server
2-Microsoft BotFramework Webchat
3 dev.botframework.com : where my bot is registered
Yes it is possible to host your bot on any server other than azure. It is fairly simple if you are using the node.js sdk of microsoft bot framework. You deploy it like any normal node.js service. Here are the links to some of the services and documentation on how to deploy node.js applications on them.
Heroku - Free Tier | No credit card needed - https://devcenter.heroku.com/articles/deploying-nodejs
AWS - Free Tier | Credit card needed - http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.html
Digital Ocean - https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-16-04
However if you are using the C# SDK then you will have to host it on a server which has IIS. Instructions in the link below
Digital Ocean - https://www.digitalocean.com/community/questions/hosting-a-asp-net-website
AWS - http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.quickstart.html
Once you deploy the next step would be to set up SSL for the server. Services like heroku offer a free SSL if you use their subdomain. Once you set up the server, you can connect it to the Microsoft Bot Framework Web Platform (dev.botframework.com) by using this url in the settings page of your bot.

Can We deploy Microsoft bot Application in IIS without Azure?

Is it possible to deploy Microsoft bot Application in IIS without Azure.
We have created a sample bot Application and running fine with the Emulator in local environment.
We would like to move the application to the Production and don't have Azure account and details.
Can we deploy bot application in the IIS in Windows server 2012 R2 as how we deploy Webservices or WCF Services ? Is it Possible without Azure.
If you are not using Azure Bot Service (i.e. Azure Functions), you can host your bot anywhere. You simply need to provide the endpoint for your bot during registration:
I had this issue too. And the answer is: Sure you can! But the bad new is, that you have to publish in a valid HTTPS. So I think in this case is more simple publish on Azure.
Yes i you use azure you can use you application anywhere and make sure credentials while configuring bot.
Dont forget to configure webhooks or endpoint url

Resources