How to deploy asp.net webapp in azure virtual machine - asp.net

I am quite new to azure and need a quick pointer to how to host an asp.net website in Azure VM. Thanks for your help in advance.
A little background...
We were using a windows server 2012 R2 and were hosting the site in IIS 6. This was an intranet site. Now we are migrating to public cloud so that it is accessible over internet. For this we have acquired an Azure VM (Windows OS). We have installed Visual studio 2013 and SQL server 2012 here. I have installed azure core SDK too.
Here are my questions:
What do I use instead of IIS to host? (Because I am not able to find any related app in azure VM)
Do I need to buy any more licenses for the same?
Should I host it in IIS only and because it is in public cloud, will it be accessible over internet?
Appreciate your help!

Since you have chosen the Infrastructure as a service ( IaaS) route you have to simply replicate the setup that you have on premises.
if IIS component is not there you just have to enable it in windows features.
If you do not want to use IIS you can explore self hosted asp.net applications.
Since you have chosen the Windows server VM image and created the VM you do not need to pay for anything additional for windows license.
By default only 2 endpoints( ports) will be open in a Windows VM. 1 for remote desktop and other for powershell remoting.
refer this post for enabling endpoints for you hosted applications.
https://learn.microsoft.com/en-us/azure/virtual-machines/virtual-machines-windows-classic-setup-endpoints

You have two options basically
Use Azure Paas - Here you would host your existing application as a Cloud service using a web role and a Azure SQL Database. This might mean some changes to the existing application but would need less management from you. You can find the migration steps here
Use Azure Iaas - This is pretty much what you are trying to do. Host your application to a VM and manage all the required software (IIS,Sql server etc) on your own. Although this option might be easier in terms of migrating your application it involves managing the infrastructure on your own. Here is a link on how to install IIS on a Azure VM.
You don't need any additional licenses since you are paying for the VM which includes all required licenses. In case you decide to use SQL Server as Iaas you can also use your existing SQL Server license when running SQL Server on an Azure VM.

Related

Hosting providers for Matlab based Dot net application

I have developed a Dot Net based web application that uses matlab code compiled into dlls and deployed it on local server with 'Matlab' instsalled. It works on local server well. However, I want to deploy it on a hosting domain for ease of access. But I dont know about any hosting providers that support working of matlab dlls with web application. Is there any suggestion about such hosting providers and how should I deploy it on a hosting domain.
PS: on my remote server i had to install Matlab to run that application when deployed on IIS server ie with just mcr instlled the application was not working.
I'm doing it for the first time so I dont know much about it.
On this paper explains how to put matlab on Amazon EC2
Amazon had AMI instances
MATLAB AMI on EC2
The pre-built AMI offerings on Amazon have been depreciated and will no longer be available. You are able to work with Amazon or another cloud service provider to get you own machine instance and use your license there.
To best run MATLAB on a cloud instance, you will need your license configured as a Login Named User (LNU). If you have an Individual or Group license activated as a Standalone Named User , you can configure it as an LNU at [https://www.mathworks.com/licensecenter/lnu.][3]
Also on windows azure
You can get any host provider with IAAS and apply matlba LNU license

Continuous delivery to Azure using Visual Studio Online with Azure Virtual Machines

I need Continuous delivery to Azure virtual machines(not cloud service or websites) using Visual Studio Online
Here is the link for Continuous delivery - http://azure.microsoft.com/en-us/documentation/articles/cloud-services-continuous-delivery-use-vso/
Is this possible with Azure Virtual Machines?
My another question is which one is best Azure Virtual Machines, Cloud services or Websites? My application is big business application which is built in asp.net 4.5 and SQL server 2012 so I wanted to
know which one is best with the "Continuous delivery"
The continuous delivery you are talking about can be achieved in an Infrastructure as a service(IAAS , Virtual machines) scenario as well as in Platform as a Service ( PAAS ,Azure websites) scenario.
1. In case you want to have control on the platform, runtime , roles etc. and you decided to go he IAAS route your CI/CD setup will be no different from a on-premises machine deployed , the deployment destination changes to an Azure VM instead of local machine.
2.If you decided to offload the OS/runtime/Environment management to Azure and are only taking care of your application deployment , azure still supports CI/CD using the KUDU engine. And slots( Dev/Staging) could be configured for continuous deployment. You can setup continuous deployment or you may want to deploy your app in a staging slot for validation and promote to PROD when things look good.
CI/CD in Azure VM - https://azure.microsoft.com/en-us/solutions/architecture/cicd-for-azure-vms/
CI/CD for Azure Websites - https://azure.microsoft.com/en-us/solutions/architecture/vsts-continuous-integration-and-continuous-deployment-for-azure-web-apps/

deploying VB.net website with MySQL server database into portable device (pendrive)

I have developed a web application using VB.net with MySQL database,
now I need to deploy this application to a portable device such as pendrive/harddisk so user can use this application through the portable device in different computers.
Is there any possible way to do this?
I found this asp.net on apache but I am not sure will this work for me or not.
EDIT
Is Mod_MONO able to do what I wanted?
websites /web application can be deployed on web server only.
for asp.net it is IIS .
to make it portable you need Microsoft Virtual PC. create a virtual machine and install your app on that , then keep that in Portable Device

Difference Between Azure Web Site and Azure Cloud Service

I'm about to migrate several separate ASP.NET 4.0 Web Forms applications to Azure. Several are apps using SQL Server 2008. I'm seeing "conflicting" tutorials for this:
Deploying an ASP.NET Web Application to a Windows Azure Web Site and SQL Database
vs
Deploying an ASP.NET Web Application to a Windows Azure Cloud Service and SQL Database
This StackOverflow question goes some way towards explaining this. However, there have been several changes to Azure in recent months and I'm not sure how up to date the information is.
I want as simple a migration process as possible because of the number of sites I have to migrate. Is there a situation where I would have to use the Cloud Service route?
Aside from what the linked-to answer provides: You have to go the Cloud Service route if there are apps you need to install (e.g. an MSI, COM object, etc.). There's simply no facility to do this with Web Sites. In Web Sites, you cannot alter the VM instance at all. With Cloud Services, you have lots of flexibility to install software, alter IIS behavior, pretty much anything you need to do (as long as the installs can be automated).
One point which can be very valuable if you consider migration of ASP.NET 4.0 Web Forms applications - Microsoft Azure Websites do no support SSL for custom domains yet. That might be a blocker for your migration work to the Websites service.
Note that Windows Azure is very dynamic environment with great number of new features coming every new release. In order to be up-to-date I would suggest following ScottGu's Blog to find out about new features and their release dates.
EDIT
Windows Azure Website supports SSL for custom domains now. SSL Certificates and SSL bindings can be configured in Configure tab.
You can also read more about SSL configuration for Azure Website at Configuring an SSL certificate for a Windows Azure web site.

Should I use Windows Management Service or Remote Agent Service to publish to a remote server?

I have a remote web server that I have full administrator access over, and I want to deploy a website.
When I use Visual Studio's Publish tool, among other things which seem a bit less convenient (FTP etc), I have the option of using either Windows Management Service or Remote Agent Service. All the documentation says is this:
To publish remotely through Remote
Agent Service, use
http://RemoteComputerName. This option
is typically used to deploy a Web
application inside a network (in an
intranet scenario). You must have
appropriate permissions to perform the
deployment on the destination server.
To publish to a hosting site using
Windows Management Service, use the
value that is specified by the hosting
provider. You can typically use just a
server name (HostedRemoteServer) or a
complete URL that includes a server
name, a port number, and the Web
Deploy handler name
(https://HostedRemoteServer:8172/MsDeploy.axd).
The hosting provider can tell you the
name of the server and the port
number, if applicable.
This isn't enough information for me to decide, though. Yeah, I'm not publishing over a network, but I do have full access over the machine I'm deploying to. At the same time, MsDeploy is the big fancy thing that Scott Hanselman describes in his talk and that I've been convinced as being the awesome way to deploy.
So which should I do? Are there any obscure security considerations or anything?
I recommend going the Management Service route. In addition to the msdeploy features, the Management Service feature gives you the ability to remotely administer IIS 7/7.5 from your machine. With all of your IIS servers in one console, you can easily export an application on one machine and import it onto another.
It seems like the most sophisticated msdeploy implementation from a security provisioning perspective and from a configuration perspective. The IIS manager allows you to easily configure details around the endpoint (SSL certificate, port, etc.). Well.. this is true on IIS 7/7.5 on Windows 2008 and R2, but not on Windows Vista or 7. For some strange reason, there is no UI for the Web Management settings on non-server SKU's.
The agent is basically a self contained web server without any of the user-level permissions capabilities. This is why it requires that the person doing the remote deployment has admin privileges on the target machine. It's feels like a simpler, bare metal implementation. Since you've already got IIS serving up HTTP/HTTPS and since IIS' HTTP implementation has kernel-level optimizations, you're not really gaining anything by going the agent route.
If you want to remotely administer Windows 2008 or R2 from Windows Vista/7, install this on your workstation: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=32c54c37-7530-4fc0-bd20-177a3e5330b7 ... this was the icing on the cake for me.

Resources