IIS process cannot access file in use - iis

We created an SSL certificate for our server and when we want to start IIS we get this error:
The process cannot access the file because it is being used by another process.
Port 443 seems to be in use. How can I solve this? Or How can I learn why port 443 in being used?

Marc B's comment is deserving of an actual answer, so I will paste it here:
Use netstat -b -a in an elevated privilege shell. It'll show all active ports and the processes attached to them. You can add -o if the process holding on to your port is svc.exe or another multi-instance executable (thanks to Mike K for the comment).
I've seen this happen on my development box where Skype actually takes over port 80 and/or 443. To turn off and disable Skype usage of and listening on port 80 and port 443,
Open the Skype window
Click "Tools"
Click "Options"
Click "Advanced"
Click "Connection"
Uncheck the checkbox for "Use port 80 and 443 as an alternatives for incoming connections" option.
Click the save button
Restart Skype

I just closed the skype, resolved the issue.

netstat -aon will show which process is using the file. In my case it was Skype but it could be any process that uses it.
Disabling 'allow port 80 for incoming connections' in skype did the trick for me.

In my case -- we had no skype and the netstat didn't return ANY other processes using port 80 or 443. A manual restart from an elevated command prompt did not resolve the issue either. Ended up having to restart the box to clear up the issue.
I changed the default website to port 88 just in case that added to the issue.

it may port issue. previously my port was 80 now i change it with 8080 then everything works fine for me.
To change the port:-
1) open iis
2) select your project
3) there is a "Edit Bindings" option at the right side. click on it.
4) select the host and click on edit.
5) now change the port

Related

How can I configure the port number of a created/existing domain in weblogic to run on a different port?

I dont want to create a new domain, instead I want to run it on a different in weblogic.How can I configure that?
Open the WebLogic console, click Environment / Servers / [Server Name]. Under the Configuration tab, click General. Change the Listen Port field to the desired port number and restart WebLogic.

My website stops in IIS 8 when i install self signed certificate

I referred to this tutorial and made a self-signed certificate and used https to my default site. But when i bind https my website stops [image below]
and when i try starting it, it shows
and when i browse to http://localhost then it opens the iis8 but when i try to open https://localhost then it says
**The connection has timed out**
The server at localhost is taking too long to respond.
Just thought I'd add to this. You can stop Skype from running on port 80/443 so no need to close it.
Tools > Options > Advanced > Connection
- Uncheck "Use port 80 and 433 as alternatives for incoming messages"
Sorry to bother you guys. It was a silly mistake of mine. The port assigned was being used by the skype so it happen. I terminated the skype from the task manager and it worked fine... Sorry to bother you guys

Opening port 3000 EC2 Amazon web services

I am trying to use nodejs and socket.io to deliver a webapp, which use websocket on port 3000.
I have opened port 3000 on my EC2 instance in my management console by adding the inbound TCP rule to the relevant security group, however I still can't access it via public dns on my browser.
sudo netstat -tulpn doesn't show it as an open port.
What am I missing? Is there some service I need to restart or a command line I need to push to get it running?
Thanks
sudo netstat -tulpn doesn't show it as an open port.
netstat command will show what all ports that are being listened by "some" process. So in this case as you have mentioned, It seems like you application is not listening on port 3000.
First, fix your application and ensure that it is listening on port 3000.
Also, netstat has nothing to do with whether a port is opend/closed from firewall perspective. It will tell you whether a given port is in LISTENING mode by some process.
Follow these steps:
Make sure your application is listening on port 3000:
netstat -anp | grep 3000
also telnet 127.0.0.1 3000
Then make sure that local firewall is configured to allow incoming access to port 3000
OR disable local firewall to do a quick test (service iptables stop). for linux, its usually iptables
Allow incoming access to port 3000 in your AWS security group.
Please follow above 3 points and let us know if you still face the same issue.
in addition to all the steps above, check if you have ufw (uncomplicated firewall) set up.
to check if you have ufw running do:
sudo ufw status
if it is running,
to allow port 3000 simply do the command
sudo ufw allow 3000
this solved the problem for me. i forgot that i had setup ufw a while back, and recently starting using my aws instance again.
I guess you made your changes using the AWS Management console.
But this just means that Amazon's system will allow message on port 3000 through their own security systems to your server.
Your EC2 server (you don't say whether it's Windows or Linux) may have its own firewall system that you have to open port 3000 on. You will have to look at the documentation for your server to what settings you need to change.
I assume you've tried opening a browser on your EC2 instance and you can access the webapp from there.
Also, thinking laterally, if there are no other web servers running on your EC2 server why not change your node.js webapp to use port 80?
Had similar problem, but I was using socketio with SSL
var https = require('https').Server({
key: fs.readFileSync(path.join(__dirname + '../) + 'ssl.key', 'utf8'),
cert: fs.readFileSync(path.join(__dirname + '../') + 'ssl.crt', 'utf8')
}, app);
But the keys were wrong, so even though my AWS security was done, iptables clear and nginx providing with client js file, the request kept closing. So in Firefox I got net::ERR_CONNECTION_CLOSED and finally figured out that it might be the SSL failure.
I hope this helps somebody. I had followed an online tutorial that said I should add a security rule for 3000 TCP and link back to the security group identifier in the source.
That's wrong. Remove that line and just set up two custom TCP for port 3000 for IPv4 and IPv6. That fixed it for me.
Let me put my couple cents here.
Resolved issue by adding 3000 port to Secure groups with IPv4 and IPv6 and setting host in nuxt.config.js to '0.0.0.0'. This value makes Nuxt automatically find "real" ip listen to.
Here is how I was able to fix the problem:
Go to the EC2 instance page
In the "Security" tab, click on the link of the security group associated with the instance
In the Actions menu click "Edit inbound rules"
Add rule with custom tcp
And click "Save rules"

Browse Web Site With IP Address Rather than localhost

I am using VS2012 with IIS Express and can not seem to browse my web sites using my IP Address. Is there some way to do that? It used to work fine with earlier versions of VS.
For example, this address works fine:
http://localhost:64651/
But, this address does not work.
http://192.168.252.165:64651/
I am sure of the IP Address, since I just got it using ipconfig.
Go to your IISExpress>Config folder, locate applicationhost.config. Change <bindings> as below:
<bindings>
<binding protocol="http" bindingInformation="*:1407:YOUR_IP_ADDRESS" />
</bindings>
Before you do this , you will have to register this IP address using netsh command as below:
Port forwarding in Windows 7
If you’re running Windows 7, pretty much all incoming connections are locked down, so you need to specifically allow incoming connections to your application. First, start an administrative command prompt. Second, run these commands, replacing 192.168.1.11:1234 with whatever IP and port you are using:
> netsh http add urlacl url=http://192.168.1.11:1234/ user=everyone
This just tells http.sys that it’s ok to talk to this url.
IMPORTANT: The user=everyone parameter must be specified according to the system language. So if your windows language is spanish the parameter must be user=todos.
> netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=1234 profile=private remoteip=localsubnet action=allow
This adds a rule in the Windows Firewall, allowing incoming connections to port 58938 for computers on your local subnet.More information at this link.
Port forwarding Mac OS X
Step 1: View Current Firewall Rules
sudo ipfw show
Step 2: Add Port Forwarding Rule (80 to 8080)
The default port that Tomcat runs on is 8080, so here we show the command to do port fowarding from port 80 to 8080 (Tomcat’s default port). Obviously, this works for other ports as well, and you’d just have to adjust the command accordingly.
sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in
This is a temporary change, and it will revert once you reboot. If you want to make it permanent, you can create a lauch deamon for it.
Optional Remove Rule
If you want to remove your firewall rules run:
sudo ipfw flush
Port Forwarding Using PFCTL (aka PF) on Mac OS X
The setup for pfctl is similar to ipfw. Github user kujon has created a nice guide to show how to set up port forwarding from port 80 to another port using pfctl.
Note: Be sure to change the bindings of your project only by locating its name. You can even keep the localhost binding and add a new one , this way you can access same webpage using both the given IP address and your old localhost binding.
You can use Conveyor by Keyoti
Step 1:
Download the Visual Studio Extension by searching for 'Conveyor' in the Tools->Extensions and Updates dialog.
Step 2:
Conveyor is automatically enabled for web application projects, run (debug) a project and note the Remote URL, that is the URL you will use from your device or other computer. Please see troubleshooting below if you don't see the Conveyor window.
Step 3:
Add an inbound firewall rule allowing access to the TCP port given in the Remote URL.
1. Open Windows 'Start' and type WF.msc.
2. Click 'Inbound Rules' on the left.
3. Click 'New Rules' on the right.
4. Choose 'Port' in the new dialog, then 'Next'.
5. Select TCP, and enter the port from the Remote URL next to 'Specific local ports' (probably 45455), then 'Next'.
6. Next, and next (you may want to disable 'Public'), give it a name like 'Conveyor: web dev server access enabled'.
Step 4:
Use the Remote URL from your device (phone, tablet or other machine) to directly access your application.
More information at Conveyor
binding visual studio in local iis ip webconfig

Launching Azure debug from Visual studio and bind in * instead of 127.0.0.1

I am doing a small app using Windows Azure.
While debugging my app and I wanted to make a request from another computer and I couldn't get to it. Although I can see the IIS webpage.
Looking into netstat I found this:
TCP 0.0.0.0:80 Windows7-VBox:0 LISTENING
TCP 127.0.0.1:81 Windows7-VBox:0 LISTENING
TCP 127.0.0.1:82 Windows7-VBox:0 LISTENING
How can I make Azure bind to 0.0.0.0 instead of 127.0.0.1?
EDIT:
Here's a good link with the different options available.
Looks like http://www.iis.net/expand/ApplicationRequestRouting is the simple thing to do but I can't manage to get it working.
The rule is up and running but when I hit it from the other computer I just see a browser of files. Any idea?
No, for security reasons. (WA Simulation Environment runs elevated.)
But if you grab a port forwarder, you can probably rig something up.

Resources