Access Azure Development Server From VM? - iis

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.

Related

Asp.Net Web API and Azure Web Role

I created a web application using Asp.net web api in azure and i want to consume it with a web role application ! what is the difference between web application and web role and what should i do ! thanks
An azure webapp is a website you host on azure as a normal website.
you don't really have a lot you can do with the machine. Just see it as normal website hosting.
A webrole is part of a cloud service. Which is a bit more flexible. Web roles allow you to install for example applications on the vm you are running your application. The state of the machine is not held so if the machine goes down you lose all data you stored on it. In fact you upload a sort of zip package with the application inside. This installs the app and when something goes wrong a new machine is started and the package is installed again on that new machine. This is also 'an issue' with azure websites.
Here is a good link with some more info + with info on virtual machines which is in fact a layer lower, meaning that you have more control over the machine.
https://azure.microsoft.com/en-us/documentation/articles/choose-web-site-cloud-service-vm/
In most of the scenarios Azure Web App is what you should use. It provides all the capabilities required for almost all websites.
However, Web App may not work in few scenarios e.g.,
When you have a dependency on software or library that you need to bundle with your code
You need to RDP into the machine for some purpose
...
In those scenarios you will have to depend on Web role.

Windows azure web role on local IIS

I am developing windows azure web role. Can I host the azure web role on my local IIS.
If yes..what are the steps I need to follow ?
Local Machine is currently running on windows server 2008 R2
There are two ways to achieve that, with varying levels of fidelity to the target environment.
The simplest is just to run your website project locally. You can attach it as a virtual directory on IIS and run it from the browser or debug it from Visual Studio. This will run as a regular IIS web application, but it won't be running as a web role.
The second is to package your application as a cloud service and run it under the Windows Azure Compute Emulator installed on your development machine. There are several tutorials on how to do that, including:
Developing and Deploying Windows Azure Cloud Services Using Visual Studio - see "Debugging a Windows Azure Application Locally".
Run a Windows Azure Application in the Compute Emulator
Windows Azure Basics–Compute Emulator
Building the web role for the Windows Azure Email Service application - 3 of 5
How-to deploy application to Windows Azure Compute Emulator with CSRUN
The Compute Emulator simulates several features of Windows Azure Cloud Services, but yout have to be aware of Differences Between the Compute Emulator and Windows Azure. Your application can tweak its behavior according to the environment by reading the RoleEnvironment.IsAvailable and RoleEnvironment.IsEmulated properties.
The Compute Emulator uses IIS Express locally for your dev/test work. IIS Express should be already set up for you when you installed the SDK+Tools. (Older versions of the SDK relied on full IIS 7 - more info here).
If you're talking about developing for running in production locally: It doesn't exactly work this way. A web role translates to a Windows Server virtual machine with some startup scaffolding code to allow you to install things in your VM, tweak the registry, etc. Since web role instances are stateless, every time a new instance is launched, the startup script is executed (same if an instance crashes due to hardware failure and is brought up again on another machine).
If you want to run the web app itself locally, then you'd need to take specific actions, based on whether your code is executing in Windows Azure or on a local machine (and then package it a bit differently - you wouldn't include the web role project). You can check RoleEnvironment.IsAvailable + RoleEnvironment.IsEmulated to help you out.

Test Win8 App hosted in Azure Compute Emulator on Tablet

I have a two web application in Visual Studio 2012 running in the Windows Azure Compute Emulator (using IIS Web Service, not Express). Additionally I have a Windows 8 App in another Visual Studio instance which uses both azure web applications. This combination works fine on the same machine.
For presentation purposes I'd like to run the app on a Windows RT Tablet. Therefore I use the remote debugging tool to run the app on the tablet. Running the app is not the problem. But I didn't found a possibility to connect to the web applications from the tablet. The azure Emulator generates URLs like 127.0.0.X:81 but the tablet cannot resolve this address.
Is there a workaround to solve my problem? A way to run the azure application with the IP address of my dev machine? Or is it possible to create a kind of a proxy running on the dev machine which forwards requests from the tablet to the azure application?
I've seen a possible solution running fiddler as a reverse proxy. This does not work for me because fiddler seems to listen only on one port. But I need two.
Another possibility would be to configure the Azure Emulator endpoint.
Take a look at this SO answer for more information.

Deploy ASP.NET MVC 4 to Staging and Eventually Windows Azure

I have an ASP.NET MVC 4 app. This will needs to be deployed to an internal IIS server, which is a Windows Server 2008 machine, for testing. Eventually, we will deploy the app to Windows Azure as a Web Role. From my understanding, there is a way to have a "private" cloud on Windows Server 2008.
What is the recommended way to deploy an ASP.NET MVC 4 app to a "private cloud"? Please bear in mind that this app will eventually go to the public version of Windows Azure.
Thank you,
If you eventually want to deploy on Azure, I would strongly recommend that you test on Azure. If this is a commercial project that you're working with and you want to do one month's testing that will cost you approximately $160 for two instances (you really do need to test with two instances). Compare that to the hourly rate of whoever has to setup and support the server and you're probably already ahead.
You can run your site on premise with IIS, SQL and even AppFabric caching (Velocity) and all of these are similar to what you get in Azure, but not the same. Windows Azure SQL DB (WASD) in particular has different restrictions to and a different performance profile than an on premise SQL Server DB. If you want to use Azure Storage, there is no on premise version of this.
I would get a Windows Azure VM (or doesn't matter, it can be an server on premises) and deploy through web deploy.
Here is a great blog post on how to get a VM up and running with web deploy with only one script:
Script Out Everything - Initialize Your Windows Azure VM for Your Web Server with IIS, Web Deploy and Other Stuff
I used Windows Server 2012 there and PowerShell 3.0. So, there might be a few things that are not available in Windows Server 2008 R2. However, I heard that PowerShell 3.0 is now available for down level OSes. If that's true, I would also recommend you to get it installed at the first place because it has new capabilities.

Which azure service, i should choose for my node.js app?

I am new to Microsoft windows azure cloud and want to run my node.js app in azure cloud. I read the windows azure Node.js Developer Center site ( https://www.windowsazure.com/en-us/develop/nodejs/ ) and it seems my app can run in azure cloud multiple ways.
Which azure option is good for my node.js app if i want to deploy quick with less azure knowledge?
If you are new to Windows Azure but knowledgeable a Node.js developer, you sure can use Windows Azure to write your Node.js application.
You have following choices:
Windows Azure Websites (Preview) –
FREE only if shared and if RESERVED there is some cost associated with it
Great if you are a Linux or Mac User
Your node.js application will run on Windows Server Farm
You can use git to deploy your Node.js Application
Windows Azure Cloud Services
Ideal for applications that separate logic into multiple tiers using both Web and Worker Roles
It is a PAID service
You can use PowerShell to deploy directly from a Windows Machine
Your Node.js application will runs on Windows Server 2008 OS
You will have capability to RDP your Windows Azure VM.
Windows Azure Virtual Machines (Preview)–
This way you can create run your node.js application on a Microsoft Windows or Linux (Suse, CentOS, Ubuntu) machines or upload your own Linux VM already fully installed with Node.js application
With Windows machine, you can RDP to your machine and install your Node.js application
With Linux machine you can use Putty to connect your Linux Machine on command like and then install your application and other packages
Currently even with Preview mode, there is some price associated with it
As you are new to Windows Azure, I would suggest you to give a try using FREE Windows Azure Websites Shared because this way you really don’t need to learn a lot about Windows Azure and you can start running your application instantly. This could be the easiest method among above 3 options and then you can jump to other by just migrating your application If needed.
IF you decide to use Cloud Service, you can use Cloud9 IDE to publish your Node.js application directly to Windows Azure Cloud Services in your subscription.
You can find a decision tree here: http://msdn.microsoft.com/en-us/magazine/jj991974.aspx
What are the options you're considering? I can think of two: "cloud services" or "web sites." The latter is probably the easier and cheaper option, assuming you're building a web app. The former gives you full-blown VMs backing your app, on which you can run anything (including "workers" that process data in the background or apps that communicate via web sockets or even raw TCP). It's more powerful, but it's also more difficult to use, slower to deploy, and costs more money than a shared "web site."
Sign up for the Windows Azure 90-day free trial https://www.windowsazure.com/en-us/pricing/free-trial/
Login into the Portal at: https://manage.windowsazure.com
Click the Virtual Machines tab then click Create a Virtual Machine to create a Windows VM.
On the slide-out panel, select Quick Create then specify your DNS Name, Image [Windows Server 2008 R2 SP1], Administrator Password, Size [Small (1 core, 1.75GB Memory)], Location (West US). Finish by clicking the Create Virtual Machine button.
Once provisioning is complete, you can connect to your VM via Remote Desktop Protocol by clicking the Connect button on the toolbar at the bottom of the screen.
Be sure to install a modern browser like Firefox to avoid the annoying default security settings of IE then proceed to download and install the node-js msi like you would on your desktop.
Happy hacking!
The fastest way to get started is to use Windows Azure Web Sites. You get a web site that is already configured to run node.js. You merely use ftp or git commands to push your code to the drop folder for your site.
You can use a Mac, PC, or Linux as your development machine. This tutorial (using a mac) shows the fastest way to get started: https://www.windowsazure.com/en-us/develop/nodejs/tutorials/create-a-website-(mac)/
Cheers!

Resources