ODBC or OleDB database drivers under Azure App Service - azure

I'm investigating what's involved in deploying an ASP.NET MVC web application to Azure as an App Service, using Web Deploy from Visual Studio 2015.
The MVC web application uses SQL Server for the identity database in the standard fashion, so I can see how to point that at an Azure-hosted database server.
In addition, it has some 'legacy' data in DBF files in the App_Data folder, accessed on my development PC via OLEDB.
This scenario is obviously going to fail on deployment because whatever box(es) the site ends up hosted on won't have this OLEDB driver installed.
Is this a complete non-runner or is there some way of installing the driver?

One possibility is to use Windows Containers on Azure App Service in which you have control over what drivers or custom software to install.
Please check the quick start to run a Windows Container in App Service:
https://learn.microsoft.com/en-us/azure/app-service/app-service-web-get-started-windows-container

You can't install ODBC or OleDB drivers when using App Service, you need to look at Virtual Machines.

Related

ERROR_SMO_NEEDED_FOR_SQL_PROVIDER when I'm trying to Web Deploy

When I try to publish project from Visual Studio 2019 to remote IIS server, I'm getting an error:
"The SQL provider cannot run because of a missing dependency. Please make sure that Microsoft SQL Server Management Objects (Version 10 or higher) is installed. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_SMO_NEEDED_FOR_SQL_PROVIDER".
This is the first time I installing software to server, so here is what I did, following instructions on the web:
Added features: Windows Deployment Services (with Deployment Server and Transport Server), IIS Management Console, IIS Management Scripts and Tools, Management Service, Logging Tools.
Installed SQL Server Management Objects (version 13.0.1601.5), Microsoft Web Deploy 3.6 (because of version 4.0 won't offer me to install IIS Deployment Handler and won't show me Deploy menu in the IIS).
Tried to configure Web Deploy Publishing for existing user from Active Directory with defining connection string to SQL server.
Allowed users in IIS Manager Permissions.
Some important information:
Server is in domain, connection to internet restricted. Application works in intranet.
Using Web Platform Installer permitted because of item 1. Any programs should be installed offline only.
Server haven't been used for Web Deploy before.
Before installing Microsoft Web Deploy 3.6, I was unable to check connection from Visual Studio and even hadn't current error.
I guess that error happens because of incorrect connnection strings (Enter SQL Server/MySQL connection string to be used for publishing).

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.

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!

Access Azure Development Server From VM?

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.

Resources