How do I expose local IIS to other PCs on Windows 7? - iis-7

I found the good article to do that http://msdnbangladesh.net/blogs/munnacs/archive/2009/06/13/exposing-your-local-iis-to-network-in-windows-xp.aspx ,but it's for Windows XP and I'm using Windows 7 which gets extremely complicated Firewall settings.
So here is my question, how can I achieve the same thing on Windows 7 as the article does on XP?
Thanks in advance,
yokyo
Edit
Sorry, I fixed the link :p

You can achieve the same thing in Windows 7 by doing the following:
Start -> Control Panel
System and Security
Under the Windows Firewall heading:
Allow a program through the Windows Firewall
Check the HTTP and HTTPS protocols in the list:
Secure World Wide Web Services (HTTPS)
Web Management Service (HTTP)
Word Wide Web Services (HTTP)

Using Windows 10 and I wasn't able to get it to work with this version. Secure World Wide Web Services (HTTPS) and Web Management Service (HTTP) aren't on the list and just World Wide Web Services didn't help.
What eventually worked was setting up an inbound rule for the specific ports my IIS site was using these instructions

Related

Can we deploy the independent /separate web application on same server‘s IIS on which SharePoint applications are installed?

We have a Windows server 2008 with IIS on which SharePoint applications are installed.
Can we deploy the independent /separate web application on same server‘s IIS on which SharePoint applications are installed ?
Any help would be appreciated.
Yes, you can, though they'll need different virtual hosts (so that they're accessed through different URLs).
They can use the same IP address and port if you want, although they don't have to. If you're running multiple HTTPS sites, then each site will need its own certificate and will thus need its own IP address, but that's still possible with one server, just a bit more involved.
Yes you can as Thriggle suggested but make sure that you don't share the app pool of any SP web app with another web app, both for security and maintainability purposes.

Deploy SignalR on small Intranet without using Windows Server

I have an ASP-based application which provides real-time data from a local server to a small group of local users via mobile and desktop browsers (around 10 at any one time). Most of my installations use IIS running on Windows 7 Pro. Until now I have been using ajax short polling but am now prototyping changing the transport to SignalR.
Unfortunately it seems that using IIS on Windows 7 is not an option with since SignalR keeps a large number of connections open and in this configuration IIS has a concurrent connection limit of 10:
http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/supported-platforms
I am considering attempting to use IIS Express for my deployments. Is this a route worth pursuing? What are the pitfalls? Do I have any other options (other than to install Windows Server).
Thanks all
You can use self host signalR on a windows service see here for a sample
I use it on a Win7 machine

Viewing ASP.net Development Server from virtual machine

Microsoft recommends testing older versions of IE with the following virtual machines
This is all fine and good, except that the virtual machines can't see the Dev Server from Visual Studio. This makes it very difficult to develop or debug since I have to copy or deploy to IIS for every little change I make. I've tried using ARR, but it seems it can only forward to one specific port at a time, whereas i need to have the port typed in the address bar of the virtual machine to match the port that it is connecting to on the host machine. Is this possible?
You shouldn't need to deploy to IIS to test changes.
We set our IIS up on development machines to point to the web project folder.
Once IIS is setup, you can add an existing website to your solution, select Local IIS and select the Site from the list of sites (rather than browsing the file system and selecting a .csproj file). You'll now have your site in VS that is hosted by IIS, ready to change and debug, and accessible from remote machines.
Generally speaking you cannot access the ASP.NET Development Server on one machine from another.
Here's some additonal notes on what you cannot do with ASP.NET Development Server from MSDN
ASP.NET Development Server is specifically built to serve, or run, ASP.NET Web pages under the local host scenario (browsing from the same computer as the Web server). In other words, the ASP.NET Development Server will serve pages to browser requests on the local computer. It will not serve pages to another computer. Additionally, it will not serve files that are outside of the application scope. The ASP.NET Development Server provides an efficient way to test pages locally before you publish the pages to a production server running IIS.
The ASP.NET Development Server works only with individual pages and does not include the extra facilities of IIS. For example, the ASP.NET Development Server does not support an SMTP mail server. If your Web application involves sending e-mail messages, you must have access to the IIS SMPT virtual server to test e-mail because the ASP.NET Development Server cannot forward e-mail messages or invoke a server that does.
Anyway.....
Googling around I have found an article where somebody had success on accessing a Development Server remotely using a reverse proxy. I have not tried but here's the link
Configuring a Basic Reverse Proxy in Squid on Windows (Website Accelerator)
Also have a look at this StackOverflow question that has answers describing varous methods to achieve your results
Is There a Way to Make Remote Calls to ASP.NET Development Web Server?
You need to type the development server port into the address bar of the client browser, otherwise host the application in IIS and use the default port.
It is overkill to test with this number of configurations in the development environment. It is generally sufficient to test with 2 or 3 configurations while you are writing code (say IE8, FireFox) - just run these from the local machine (no need for a virtual machine). Once you've finished the UI, deploy your application to a test environment running IIS and test it against the larger range of configurations.
If you test each small change against all of these configurations as the change is made, you'll find yourself overwhelmed with testing. Don't forget that as well as the MS recommended test environments, various configurations of other browsers and operating systems (such as FireFox and Opera, Mac OS) are equally important - you may choose to only test a subset of these configurations depending on your resources.
I too found the link Lorenzo mentions in his comment, but had no luck with Squid configuration.
Happily there's a much easier method, as noted here.
Go to CNET and download SPI Port Forwarder
(Note: Click the "Direct Download Link" below the big green "Download Now" button. If you use the Download Now button CNET tries to install adware on your machine before giving you the file. It's very odd.)
In the first column, "Local Port" put the port you want people to connect to your machine on. I wanted people to come in on 80.
Second column, "Remote host", put "localhost" (it'll apparently port-forward to other machines).
Third column, "Remote port", put the port of the local webserver (in my case the ASP.NET Development Server on port 2485).
Click "Activate"
Hope this helps.
I am answering this old question to help peoples who wants to make it work without IIS. Thank you Fiddler !
1. First Step
You have to download Fiddler.
Once Fiddler is downloaded and installed, open it.
Go in Tools-> Fiddler Option-> Connection tab-> And check "Allow remote computers to connect" :
Restart Fiddler.
2. Second Step
After this, in the VM, open internet explorer-> Internet Options-> Connection Tab-> Lan Settings-> Check "Use a proxy server for your LAN" :
The adress is the IP adress of your DEV machine.
And put the port 8888
Now, you can access the ASP.NET Web Server from your VM !
To access it -> http://localhost.:54814
Don't forget the additional point after "localhost" !
The port, "54814" in my case, is the ASP.NET Web Server port.

Is There a Way to Make Remote Calls to ASP.NET Development Web Server?

I know that generally speaking, this cant be done, that is get another PC to call a site hosted under the ASP.NET DEvelopment Web Server remotely (generally you can only use localhost:port to get to it).
But I was wondering if anyone has seen, or knows of a way to get around it? I am a RESTful API developer in my office, and I would like the PHP guys to test the APIs on my machine so that I can have the Visual Studio 2005 debugger attached, and I can more easily find problems.
THe main issue is, that my machine is a Vista machine, and unfortunately, the APIs I have developed do not work under IIS7, even Classic Application Pool mode (which eliminates hosting them on a local IIS impossible).
Alternatively, is there a way to use IIS6 on another machine to suite my needs?
Update
Based on the advise that I have gotten and after much trial and error with the suggestions made, I was able to get Squid to act as a reverse-proxy and do exactly what I wanted to do. I have blogged about it http://www.ashleyangell.com/index.php/2009/03/configuring-a-basic-reverse-proxy-in-squid-on-windows-website-accelerator/ in case anyone else wants to do the same thing.
This is substantially easier than the Squid option:
"Accessing the Visual Studio ASP.NET Development Server from iPhone"
Also there is an update that works well under Windows 7, too:
"iPhone Accessing the Visual Studio ASP.NET Development Server - Windows 7 Update"
I have just tried http://code.activestate.com/recipes/483732-asynchronous-port-forwarding/ successfully. It's a Python script that just forwards the traffic.
Assuming the machine your dev server runs on is 192.168.42.42 and the dev server is on port 12345, run the script (on the same machine) with the command line arguments
-l 192.168.42.42 -p 8000 -r 127.0.0.1 -P 12345
From a different machine, you can then access the server via http://192.168.42.42:8000.
Be sure to change sender.handle_close as noted by Dwight Walker in the comments:
def handle_close(self):
self.close()
if len(self.receiver.to_remote_buffer) == 0:
self.receiver.close()
Can't you just run IIS7 in Classic Application Pool mode?
The Development Web Server is strictly limited to Localhost, you would either need to decompile and recompile it, or set up some kind of Proxy on your machine.
And on an unrelated Topic: Even though Win2003 Server SP2 R2 should be supported up to March 2012, maybe IIS7 Support should be added to your application to make sure you can run on 2008 Server as well.
Basically i spent 5 hours making this work, and ultimately if you want a 5 min fix here goes:
1. Port forward incoming traffic to your local ip on your network
TCP Any -> 3127-3128
TCP Any -> 80-81
TCP Any -> 8080
TCP Any -> 8000
TCP Any -> 8888
to
192.1681.1.3 (the local ip of the machine running .NET Dev server.)
2. Download SPI Port Forward
3. Heres the tricky part - Setup 2 forwarding rules as follows:
Local port: 8080 Remote: localhost Remote port 8080
Local port: 8080 Remote: localhost Remote port: .NET Dev server port
Without that second rule the .NET dev server wont serve the page
4. now visit your public IP address at port 8080 -- and you got it
Z
You might want to take a look at UltiDev's version of the Cassini web server. They took the Microsoft Open Source Cassini web server and enhanced it to allow among other things, remote connections.
You can attach VS to the process, and watch your RESTful APIs being called from the PHP application, exactly as you describe above.
Just use a simple Java TCP tunnel. Download this Java app & just tunnel the traffic back. No messing with IIS necessary!
http://jcbserver.uwaterloo.ca/cs436/software/tgui/tcpTunnelGUI.shtml
In command prompt, you'd then run the java app like this... Let's assume you want external access on port 80 and your standard debug environment runs on port 1088...
java -jar tunnel.jar 80 localhost 1088
(Also answered here: Accessing asp. net development server external to VM)
Switching IIS 7 to Classic pipeline does not resolve your compatibility issues?
VS 2005 has a remote debugger, as did many versions before that.
YES THERE IS! :D
I was also looking around to overcome this limitation for some time and accidentally I stumbled upon following article:
http://eeichinger.blogspot.com/2009/12/sniff-http-traffic-with-aspnet.html
I haven't tried it myself yet, but looks quick & simple (although some may say this is hardcore).
BTW. I recommend you look at some other posts at Erich Eichinger's blog, since there's more really valuable stuff.
This post helped me:
http://staticvoidmain.cognitioab.se/index.php/2013/01/remote-debugging-asp-net-development-server-with-spi-port-forward/
It suggests using a third-party application on your developer machine to act as a proxy (sort of). So you connect to this app, and it forwards all your requests to the development server. Works like magic :)

Trying to test a ASP.NET website over a LAN

I have a XP Pro and Vista machine setup on a workgroup LAN, normal case
with NAT router/adsl modem. Latop is wireless.
The XP Pro laptop has IIS on it and I have written an ASP.NET app.
When I try to access the app from browser on the Vista PC I get an error
saying can't connect to site.
I have tried the following:
Can ping the XP Pro PC from Vista PC.
Turned on Web access from windows firewall.
Rebooted.
When I telnet to it I get http 400 bad request.
Any thing I am not doing please?
Malcolm
Are you debugging your project using the ASP.net development server? I believe that server does not accept external connections.
If you've allowed access through the firewall, I'd suggest looking at your IIS settings for the website. Is anonymous access allowed? What sort of authentication are you requiring if not? Is the website actually running in the url you're requesting?
Lots of different problems occur because of IIS settings. Play with each possible cause, one at a time, until you find out what it is the real cause, if you still can't find it, play with two at a time.
When you finally find the problem, REMEMBER it, because problems with IIS tend to be forgotten and then you have to go through everything AGAIN. Sadly, I know this from experience.

Resources