IIS Express - internet access (not local network) - asp.net-mvc-4

I developed a MVC web app on my computer , running on local IIS Express server. My problem is that now the client wants to see how the app looks and i need to transfer my app online. I don't want to buy any hosting yet, just to use my computer as a web server. My question is, how can i do this using iis express ?. I've searched on old google but only found how to make the app accessible for users on my network. Tutorials like these . I also want to mention that i am behind a router on which i have access to configure .

You have to configure your router to forward port 80 (or a custom port) to your hosting device. Therefore you first have to give your computer a static ip address (also on the router) and enable port forwarding from for example extern port 8181 to your static ip and intern port of your iis port.
Then from outside your clients can call your external ip-address (modem ip):8181 to visit your website.

Related

how to use IIS and website hosting

I am new website servers and hosting and just after some help clearing some stuff up.
Firstly if I use a website server on my computer ie. IIS is that the same as using a web host such as host puppa? and if so does that mean I don't need to use a web hosting company?
Secondly what hosting/ server do i need to use to run SQL and MySQL in my website?
Is there any good tutorials that run through all of this stuff for beginners as I am quite confused?
IIS is a web server such as apache or nginx. It's a Microsoft product and supports ASP.NET pages.
You can use it instead of a web host, but you have to make sure that your computer is reachable from the internet if you want global access. There is also some setting for what interface and port you want IIS to listen on, that should be set to your external IP address and port 80 for HTTP.
If you are behind a router with NAT, you have to use port forwarding to redirect port 80 requests to the router into your IIS.
As SQL server you can use Microsoft SQL Express or MySQL for example.
Personally, I use WAMP on Windows machines, which gives me everything I need: Apache, MySQL and PHP.
Furter reading: http://www.howtogeek.com/177129/beginner-geek-how-to-host-your-own-website-on-windows-wamp/ (wamp only, but I mentioned alternative applications above)
Edit 1: If your ISP gives you dynamic IP addresses (which is the common) you have to use some kind of dynamic DNS updating, you IP address might change.
Also, of course, if you shut your PC down, the site goes down as well.

How to access my Home PC from out side by WCF service

How can i create the proxy of wcf service which runs on my home pc from out side or from my office pc. when i connect my home pc to internet then ISP assign a dynamic IP to that pc. my home pc has no fixed or static IP.
if i know my Home pc dynamic IP then can i create the proxy of wcf service which is running on my home pc from my office pc. wcf client will run at my office pc and wcf service will run in my home pc.
so this is the situation.
it would be sufficient if anyone the dynamic ip of my home pc as a result one can reach to my wcf service. so please tell me what are the information one has to acquire to reach my wcf service running on my home pc.
please give me the idea how can i run wcf client at my office which can connect to wcf service running on my home pc and exchange some data. please give me the full instruction as a result my wcf client from my office pc which can connect to my wcf service running on my home pc.
some one told me to use a common way to solve this problem is to use a Dynamic DNS, such as No-IP http://www.noip.com/. he said "DDNS services allow you to access your home computer using a fixed name, like yoursite.no-ip.org. It requires your home computer to run a small client program that communicates with the provider's servers to update the DNS records for your name whenever your IP address changes."
suppose i am not interested for No-IP http://www.noip.com/.
just give me the idea if i know the dynamic IP of machine where my wcf service is running then how can i connect my wcf client from office pc to wcf service which is running on my home pc having dynamic IP which is known to me. looking for good discussion. thanks
You need 4 things correctly setup:
Your local WCF service should be up and running: Test it from your local pc and see that it works correctly.
Your local Windows firewall have to allow connections to your port: In order to test this you shoul try to connect to your WCF service from a different computer in your home.
Your router have to redirect a given port to your local PC: Probably port 8080 of your router to port 80 of your local PC. It is done from router configuration settings.
Dynamic DNS correctly pointing to your home DSL: Probably your DSL router will have a tab in configuration that allows it to connect to Dynamic DNS service. In order to test this check that your Dynamic DNS name resolves to your
Advice: A tiny virtual server in AWS (and maybe Azure) is free and maybe an interesting alternative...
your wcf proxy that runs on your home pc, runs on a port. you will need to map that port from your router to your pc, so you can access it from outside. using No-Ip you can create a 'static' dns record that gets you to your pc
Home.No-Ip.org:1234
instead of using that, you could also just use your ip address, which is provided by your isp. note, if that is subject to change, you would need to update it everytime it changes.
assuming, you mapped port 1234 to your pc, and the correct port the wcf service is running on.
next you would need to get the client to know where the service is, so you would need to set the endpoint of the service there, the endpoint consists then of the Home.No-Ip.org:1234/someEndPointName
depending on firewall settings at your work place and your home network this should work, i do not, however, know what happens between the connection at home or work

How to connect to my apache localhost from a different network?

I am able to connect it if the two devices are in the same network but for example, if I use 4G on my android and turn of the wifi and try to connect to http://computer-ip-address then it just hangs and eventually errors out saying count not connect. The apache server is hosted in my local mac, and I've disabled my firewall temporarily. Any ideas on how to get a device using a different network to connect to my apache server on my local network?
You will need to configure your router so that it will forward port 80 from external to your mac.
Then, you can open http://your-public-Internet-ip on your mobile phone, effectively visiting your local web server.
If you don't like to remember your ip address, especially if you are on the go, the answer is dyndns or any free alternative, e.g. http://www.no-ip.com/services/managed_dns/free_dynamic_dns.html.
Using such a service, you will be able to enter http://yourname.service.com into your mobile phone. You will either have to configure your router to always tell this service your current IP (check your router for supported services) or run a tiny program on your mac which will handle this.
You need to enable port forwarding on your router to forward TCP 80 (and possibly TCP 443 if you are using SSL) to your web servers IP address.
Once done, you should be able to access your site via your routers public IP address.
Take note that of your web server is using a dynamic address provided by DHCP, your IP may change and this would stop it from working. I suggest you give your web server a static IP address to stop this.
You will probably have a dynamic IP on your router as well, so you can request a static one from your ISP or you can sign up for a dynamic DNS service.
If you post the model of your router, we may be able to give you more specific instruction on setting up port forwarding.
i hope your httpd.conf is set with port listening to
Listen 80
also, you can only access your site from your LAN otherwise, your server would need to be reachable from a public IP address, not a private one over an internet 4g connection, that means a diferent network
bonus points, if you try to reach your server from an external address, did you configure portforwarding on your router ?
If you could immediately and immediately connect to your localhost using your 4G network, then most likely anyone on the internet could do the same. It is important to understand that there are two components to the answer to your question:
Securing HTTP access (port 80 or whichever) from the internet. You probably don't want to open a wide door to your local network.
Configuring addressing from your client (in this case your phone) to your local computer (in this case your Mac). If the latter does not have a public IP address, then you will have to configure your client to hit your router instead, and to configure your router to forward accordingly.
Given that this is mostly system configuration work, I'm guessing that Serverfault would be a better place to find a satisfying answer.

getting router confuguration page instead of my web home page of my website

I am trying to host a website from my local pc. For that i have installed apache server, registered a domain name and done the necessary settings.The problem is that when I am trying to access my homepage I am getting the router configuration page, same is happening when I am trying to access the website from other computer.Please help.
When hosting a website from a local PC behind a router you need to be careful to use the public IP that your service provider has given you. Beware this is often not a static address and may change frequently. To address this you can use some type of DynDNS service if your router supports it.
Second, you will need to add a rule in your router's firewall to allow the traffic from the public internet to reach the computer behind the router. This can be done either with a DMZ (less secure) or a port forwarding.
When you are trying to access the web page, type in the local ip of the computer you have setup the server on. This should take you to the apache server. You are likely just typing in the wrong IP. Try something like http://127.0.0.1/ (127.0.0.1 is the same as localhost) to make sure you get the apache server from the computer that is running the server.

how to make apache server public

I want to convert my pc to a web server. I installed centos server and apache server.
How I can make apache server public? I want to everyone access my web site on my pc via browser.
Thank you..
You have 2 ways, you can buy a domain and a static IP address for your computer (usually through the service provider) and configure your router and FW to allow access to the machine for port 80.
The other way is to use some sort of dynamic dns service like DynDNS to be able to bind a DNS to a dynamic IP address (you will need to run a daemon to update the account once in a while because your IP may change). The FW and router rules are still needed in this case as well.
After you do one of the these steps everyone should be able to access your apache server on your computer as long as it's on.