Does all web hosting providers support ASP.NET websites? - asp.net

I'm totally new to deploying websites and I read some articles and facebook posts that some hosting providers does not support ASP.NET, our website was built using ASP.NET webforms, any input is appreciated, Thank you!

You can't run your windows software on a Mac computer? and a Mac computer can't run its software on windows?
A web server is a computer. In fact, say you using LAMP (Linux, Apache, MySQL, PHP). That's called a developer stack. If you decide to say use some other web development language? Well, you can't then just expect your software to work on that computer.
So, if you say write your software to work on IBM's WebSphere computer, then if that web hosting computer does not have those languages, coding systems and support? Then you can't run your software on that computer.
If you write your software to work with Apache web server? Then the web hosting computer will have to be setup and support running Apache.
When you develop a asp.net site? Then the web server used is IIS (internet information services). So how this works is really not different then a desktop computer.
You can even find asp.net hosting (and yes, it is in fact a windows hosting system), but some support MySQL as the database server, and don't offer say SQL server services.
So, yes you not only have to find a web hosting company that supports .net, but ALSO one that supports the systems and the tools and the software you created. You can not more just toss Mac software on your windows computer, then you can say toss some asp.net software on some computer that not even windows based.
A computer is a computer is a computer. And a web hosting computer is NOT any different in this regards.
So, you have two choices:
you can look at what your current web hosting provider supports, and then go download or whatever the developer tools for that particular web hosting plan. In other words, you look at your current web hosting, and choose the programming lanauges, database system and tools they support. If you don't use those tools then your software will not work on that web site.
Or, you can adopt a set of tools, build that software and then go find a web hosting plan that supports your particular development tools.
Keep in mind that a LOT of lower cost asp.net hosting plans do NOT support asp.net web applications. They support asp.net web sites, but not asp.net web applications. But in general, most hosting plans outline what tools and systems they support.
So when you go to a hosting provider? They have Linux plans, and then they also will have aps.net (windows) hosting plans. They are often $2-$3 more per month - but in general the cost difference is not much different at all.
So, web servers no more run software then what you have running on your desktop computer.

Related

Asp.net website not starting default.aspx (apache 2.4 on Windows 10 Pro; IIS 10)

So, I setup a Win10 box as an Apache server; built VS19 Asp.net webforms app, which works as expected when run in VS. published to the C:\Apache24\htdocs folder. Now, I setup port forwarding on my ISP-provided "Internet IP Address" to point to my local server. If I use any browser (outside of my LAN) to access that address (e.g. http://xx.yy.zz.qq - not showing actual IP for security reasons) I will see the page titled "index of /", and the list of files that I published to that htdocs folder. If I put in INDEX.HTML file in that folder, it will be displayed; but since I see Default.aspx as the 1st entry in the IIS Default Documents list, with NO index.html present, I still just see the list of files, not the aspx. I don't think the fact that I've not yet established a DomainName-to-IP binding should make any difference to this issue, but I can't be sure. Any thoughts? As you might guess, I've not done this before! :) ). TIA!
Jim
I made sure that the VS instance of the website was not running, just in case that might cause IIS confusion; but I don't think that would be the case.
As noted, I can't see how a non .net server going to run/launch/process correctly aspx pages that require IIS as the web server?
I mean, IIS can't run a web site designed for Apache, nor can say IBM "web spere" web server either.
I am trying "hard" to think how a application built in .net framework going to work with a web server that not designed to work with the .net framework?
I mean, if you have a computer, and have a word document, then you need word installed to work with that document.
If you have a PDF file on your computer, then you have to install some PDF software to use that PDF document.
A web server is not some "magic" box, but is a plane jane computer, with some software installed on it. So, if you build a aspx .net framework site in .net, then that computer will require the .net framework to have been installed, and require the correct type of software to work with those pages - in this case IIS.
Now, to be fair, you CAN do this with .net core, since .net core can run on quite much "any" computer (that supports nigex). However EVEN in that case, they FAKE and TRICK you, since how they achieve this "magic trick" is when you build the .net core application, the build process includes a WHOLE WEB SERVER as part of the build!!! (this lighter weight web server (kestrel) thus can work if you forward the ports and requests say from Apache, or quite much any web server. But MAKE NO MISTAKE here, a WHOLE .net core compatiable web server is included in that build, and thus that .net web server IS STILL required to run that .net code.
Unfortunately, the .net framework (as opposed to the .net core choice) does not upon build of your web site INCLUDE that WHOLE WEB SERVER as part of the build.
So, .net framework sites requite the correct software to work, and that correct software in this case is the web server called IIS (Internet Information Services).
You can no more suggest/attempt/assume that some program to load and read a PDF document is now out of the blue going to consume and work with Excel files, or word files.
hint:
Software build to a particular library of code requires the correct software to run and work. Kind of simple!!
So, a computer with a web server?
That is JUST a computer with software installed on it, and you need the correct software installed on that computer to consume the files etc. it was designed form.
Apache web server can no more consume a "application" or "web site" designed for IIS then it can consume other files etc. that are designed for use with a 100% different application. this is how all software works, and it not clear why you would think that Apache, or IIS, or word or Excel would work any different at all here?
Now, there was the "mono" project, and that was a port of .net framework that allowed the .net framework to run say on Linux, and there are some examples of some attempts to run aspx pages that way, but it is a galactic mess of epic proportions, and really not the way to go.
However, as stated, the .net core system DOES run on just about any platform, and it does have the above "magic trick" of being able to run on Apache, but behind the scenes, that software build actually includes a WHOLE WORKING web server that is .net core compatible, and that WHOLE web server is included with your build, and thus some are "fooled" by this magic trick that .net core web sites can run on Apache. They look like they can, but they are not, and in that example case (of .net core, NOT .net framework), the site seeming to work on the Apache web server? Nope, what occurs is the Apache web server simple hands off any web request to the REAL WORKING AND INSTALLED .net core web server!!! (thus Apache really only acts as a router, or "hand off" machine, and all the REAL web processing occurs in the .net core web server called kestrel).
So, you can do as you ask, but you would have to dump "web forms" and build the web site with aspx pages as a .net core web site. If you do that, then YES you can use Apache, and it will work, but behind the scenes, it ONLY works because that build process of the .net site ALSO includes THAT WHOLE COPY AND WORKING COPY of a .net core web server as part of the build. As noted, this magic trick option during the build process is NOT available for .net framework, but is most certainly available for the .net core choice.
So, in your case of using Apache? Software designed for a particular type of web server must use the correct type of web server. Same goes for IIS - it can't consume nor run a web site designed for Apache. I mean, how software works on your desktop is not any different then how software on a web server
The pages you have implemented with the .aspx are part of the ASP.NET Web Forms framework. This framework is part of the .NET Framework. The main server required to host Web Forms applications is IIS (Internet Information Services). Since you are working on a Windows machine, you can research how to setup IIS to host your Web Forms site if you wish. If you still want to use Apache as the front end for your site, you can even have it proxy requests to your site hosted in IIS, although there's probably little benefit and much complexity from such a setup.
Apache out of the box does not include support for hosting Web Forms applications. There is an open source project called Mono that seeks to implement an alternative version of .NET Framework and allows the use of alternative web servers such as Apache. But Mono has largely been superseded by .NET Core.
.NET Core is the official replacement for .NET Framework. It is open source and cross platform by default, and the ASP.NET Core web framework that runs on .NET Core includes a Kestrel web server. This can be utilized with Apache (or any other web server) in front of it, acting as a reverse proxy. It is not a magic trick, but a rather standard approach for web applications these days. However, ASP.NET Core does not include the Web Forms framework, so you would need to re-implement your application in a more modern alternative that's supported by ASP.NET Core if you intend to stay in the .NET ecosystem. There are many alternatives in ASP.NET Core including MVC, Blazor, Razor Pages, and Web API.

Deploy a desktop application from a web site

I have a requirement to install a desktop application written in visual c++ when our customers log in our asp.net web site. The desktop app will be installed once, but will be updated as a newer version is available. What is the best way to do this?
My second question is that is there a way for my asp.net web app to interact with a window service installed on customer computer and direct the window service to control USB devices.
My work uses software by a company called Citrix. There is some client side software that goes on the client's PC. When setup correctly, we can click a link on our sharepoint site that will trigger the citrix client software to launch a WPF desktop application from a network drive that will run locally on the clients computer (might be in a virtualized space that Citrix creates). This seems to work well, it runs our WPF applications that use windows authentication. This is all I know about it. You can research more if you're interested.
To answer that second question... Your window service would need to expose some kind of service for the client (asp.net web app) to communicate to it with. So ideally I think setting up the windows service to host a WCF service inside it and use something like named pipes or HTTP protocol to communicate with your application. I don't know what kind of USB devices you are trying to control though, that will take research on your part. But if you can control them with a local console application, you should be able to do the same with a windows service.
Good luck. Hope this was helpful.
You can't install an app from a web site, best you can do is prompt the user to download the installer. And asp.net (or any website in general) can't interact with the window service on the client. Imagine going to a website which changes your service settings, installs viruses, etc. A website is pretty much limited to changing cookies and local storage on the client, anything else on the client is inaccessable.

Deploy a server with VS Express

I am trying to deploy a server that I can hit from a different computer in my office. I only need one, two computers to hit it max. I am using Visual Studios Express 2012 RC for Web and have the whole website made, but I can't figure out how to actually deploy it. When I click play to debug it (after I have told it to build the web site) it brings it up on my computer that I built the server on but I can't hit it from another computer. The address it gives me on the browser is localhost:XXXXX. I know local host means that computers IP and I have tried that repeatedly. I am stumped. Please help. I thank you for any help you give in advance. Also if you need more information please feel free to ask.
You can't run it from Visual Studio Express, you have to deploy the web application to an IIS server. You can't access the site if VS is not running, because it creates a local, specialized development server when you start the application, whether with debugging or not. You need to configure IIS on your web server. What is the OS? Once you go through a tutorial to set it up, you will copy your code to an application folder that will be created for you. The details vary by IIS version.
Internet Information Services (IIS) – formerly called Internet
Information Server – is a web server application and set of feature
extension modules created by Microsoft for use with Microsoft Windows.
IIS 7.5 supports HTTP, HTTPS, FTP, FTPS, SMTP and NNTP. It is an
integral part of the Windows Server family of products, as well as
certain editions of Windows XP, Windows Vista and Windows 7. IIS is
not turned on by default when Windows is installed. The IIS Manager is
accessed through the Microsoft Management Console or Administrative
Tools in the Control Panel.
http://en.wikipedia.org/wiki/Internet_Information_Services
http://www.iis.net/

Synchronization between Two SQL Server Databases, Online and Offline

We have a local intranet based Project Management tool, we built it in asp.net .net 4.0 and sql server 2008. We cannot access this system online as it is lan based, neither we want its files to be appear online. But most of the cases we and other managers need to post project on it from home, but the issue is we dont wana use this system only on online server but also local intranet should be working, live ip is not prefered in any case because of electricity issues etc. We have an idea in our mind, that if we launch the same published site on online server (dedicated vps), and people use to work on offline system, but we can make some .exe utility which will upload our latest records from offline server to online server using the internet, does sql server provide any built in functionality for this, what is the best way to do this, either with our own custom logic with windows task scheduler or .Net provides any kind of facility for that. The reason of not using this system only as online is, our employees used to upload files in GBs, and the internet is only 4MBps, which will slow down the work, also we dont want internet dependency every time, also there is security issue.
Regards
Atif
Check out Microsoft Sync Framework: http://msdn.microsoft.com/en-us/sync/bb736753

An easy way to run an ASP.Net application at home?

I'd like to run some small private/home applications on a local machine, but I dislike the idea to set up a full Win2003 Server with IIS for this.
Is there a easy and cheap way to get an ASP.Net application running at home?
Windows 2000 has ASP, Windows XP Professional also can run it. Look up how to turn on IIS, the built in webserver. Sure Win2k3 Server would be a nicer implementation, but for personal stuff, any of them work.
The easiest way, assuming your desktop has an OS that supports it, is the Microsoft Web Platform Installer. Requires XP or higher, but doesn't work on Home editions of XP or Vista. It'll install IIS (which version depends on your OS), SQL Server 2008 Express, the .Net Framework, Visual Web Developer 2008 Express, ASP.NET MVC, Silverlight, and more. There's even a video on the linked page that'll show you how to set it all up.
Try VIsual Studio 2008 Express Web Developer. It's free, and better than many that are not. It comes with a built-in web server so you can compile,deploy and test immediately. No need for IIS.
http://www.microsoft.com/express/vwd/
Depending on what kind of app and what version of .Net you could run Cassini. It's the free, open source web server that supports .Net. I'm not sure if it's been updated to handle 3.5, but I used to use at home to run some pretty serioud 2.0 apps that I had written.
Here's the Ultidev version which has been updated: http://www.ultidev.com/products/Cassini/ Looks like it'll handle 3.5, so pretty much anything you have.
I have been running .NET apps on my home machine (XP) for years, and ASP apps for years before that. Just install IIS and then the .NET frameworks (and whatever else you need, e.g., MVC) and you are good to go. If your machine is behind a router you will need to port-forward port 80 to your desktop. If you do not have static IP, you can use a free service like DynDNS.org to give you a hostname, and you run a small client to keep the DNS for that hostname pointed to your router's IP. If you want to use your own hostname, register one with someone like GoDaddy.com, and then use a free service like ZoneEdit.com to keep the DNS updated with the correct IP.

Resources