380

I already have a window open with the web site I'm debugging. I don't need VS to launch another one for me every time I need to debug.

Is there a way to stop this behavior?

wonea
  • 3,987
  • 17
  • 71
  • 134
sker
  • 15,764
  • 8
  • 35
  • 41

19 Answers19

435

Open your startup project's properties (Project → {ProjectName} Properties... from the main menu or right click your project in the Solution Explorer and choose Properties), then navigate to the Web tab and under Start Action choose Don't open a page. Wait for a request from an external application.

You will still be able to use any browser (or Fiddler, whatever) to access the running application, but it won't open the browser window automatically, it'll just start in the background and wait for any requests.

Uwe Keim
  • 36,867
  • 50
  • 163
  • 268
Pawel Krakowiak
  • 9,300
  • 2
  • 33
  • 54
  • That seems like a really good solution, but just like Slace's, it doesn't stop execution at breakpoints, it says no symbols are loaded. Thanks though. – sker Apr 04 '09 at 08:58
  • 9
    It does. I use it for debugging all the time. You must have wrong configuration. Double check that you have debugging enabled in the web.config and that you're running a Debug build. – Pawel Krakowiak Apr 05 '09 at 16:17
  • Well, at least for web service projects, when started breakpoints get hit as soon as the first client calls a web service method. – andynil Apr 23 '09 at 12:53
  • Only problem with this is the rest of my team actually likes it when the browser opens. So I have a modified csproj which slows me down a lot when committing changes. – mejdev Mar 29 '16 at 00:48
  • 1
    @mjohnsonengr I'd swear this is a per user setting that is local... Perhaps you have .csproj.user file checked-in (you shouldn't). – Pawel Krakowiak Mar 29 '16 at 16:58
  • 1
    So it is [a local setting]. I had previously assumed that all the project settings in that area were stored in team csproj. I had previously tried changing the URL that the browser would open by modifying "Project URL" and saw that it got changed in .csproj. Upon closer inspection, I now see that there is a "Apply server settings to all users" checkmark which controls just that field. My bad. – mejdev Mar 29 '16 at 17:06
  • 1
    @PawelKrakowiak This doesn't seem to work. It opens the new tab regardless of checking the setting. – Daniel Harris Nov 07 '16 at 15:12
  • This will not work if you have to use another setting for "Start Action", such as "Start external program ". In that case, @Joao Costa's answer below works great. – Shrulik Mar 31 '17 at 09:31
  • 4
    For Visual Studio on Mac, the comparable settings is under "Project > Options > Run > Default > ASP.NET Core". Uncheck the "Open URL in web browser when app starts". – IronRod Jun 06 '17 at 18:17
  • And don't forget to stop the running app or else all options are grayed out! – HankCa Feb 07 '18 at 22:54
  • Downvoted because this is not really a solution but a workaround. See other upvoted answer for an actual solution. – Bouke Apr 15 '19 at 10:01
166

For VS 15.7.1 ToolsOptionsProjects and SolutionsWeb Projects → uncheck Stop debugger when browser window is closed.

Uwe Keim
  • 36,867
  • 50
  • 163
  • 268
The Memebot
  • 2,332
  • 1
  • 13
  • 18
102

Updated answer for a .NET Core Web Api project...

Right-click on your project, select "Properties," go to "Debug" and untick the "Launch browser" checkbox (enabled by default).

enter image description here

David W
  • 9,822
  • 30
  • 59
Greg R Taylor
  • 2,695
  • 1
  • 21
  • 16
49

In an ASP.Net 5 project this can now be set for each launch profile.

Open the file launchsettings.json under the Startup Project Properties folder and add "launchBrowser": false to the profile you are configuring, such as in:

"profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
}
wonea
  • 3,987
  • 17
  • 71
  • 134
Joao Costa
  • 673
  • 1
  • 6
  • 7
19

This workaround works for me for VS 2019

Tools => Options

Then type Projects and solutions in the search box.

Select the Web Projects.

Then deselect the option below.

Stop debugger when browser window is closed, close browser when debugging stops.

This works for me. Hope this will help.

17

I have solved my problem by following below steps. Go to Tools >> Click on options >> click on projects and solutions >> web projects >> uncheck "Stop debugging when browser is closed" optionenter image description here

DKR
  • 4,758
  • 1
  • 15
  • 19
12

You can use the Attach To Process function, rather than pressing F5.

This can also allow you to navigate through known working sections without the slowdown of VS debugger loaded underneath.

wonea
  • 3,987
  • 17
  • 71
  • 134
Aaron Powell
  • 24,268
  • 14
  • 93
  • 147
  • I've tried that, but it won't stop execution when it finds a breakpoint. I need it to stop at breakpoints, is there a way to enable that? Thanks. – sker Apr 04 '09 at 05:02
  • 1
    provided that your attached to a process which has loaded the exact same assemblies which are in the /bin/ folder of the application all breakpoints will work (oh, and provided there are .pdb files!) – Aaron Powell Apr 04 '09 at 05:51
  • I Googled on how to fix that but it seems like a lot of trouble. I couldn't get it to work. I'll use I Have the Hat's solution in the meanwhile. Thank you. – sker Apr 04 '09 at 09:01
  • I can debug by pressing F5 with the "wait for a request from an external application" option, but I can't get Attach To Process to work (attaching to INetMgr.exe). Never stops at a breakpoint. I was using VSCommands in VS 2013, but the new 2015 version of VSCommands doesn't support "Attach to IIS" yet. Wish I knew what the issue was. – ErikE Jan 23 '16 at 00:09
10

As I did not had the mentioned option in my VS which is Visual Studio Enterprise 2017, I had to look for some other option.

Here is it what I've found:

Go to Tools -> Options -> Debugging tab(General) and uncheck "Enable JavaScript debugging for Asp.Net(Chrome and IE).

enter image description here

Alexa Adrian
  • 1,552
  • 2
  • 20
  • 36
9

When you first open a web/app project, do a Ctrl-F5, which is the shortcut for starting the application without debugging. Then when you subsequently hit F5 and launch the debugger, it will use that instance of IE. Then stop and start the debugging in Visual Studio instead of closing IE.

It works on my machines. I'm using the built in dev web server. Don't know if that makes a difference.

Firefox will also stay open so you can debug in either or both at the same time.

wonea
  • 3,987
  • 17
  • 71
  • 134
Rex Miller
  • 2,646
  • 1
  • 18
  • 26
  • Hey that works! Thanks a lot. Now I can avoid around 100 extra windows per coding session. Also, when I hit F5 VS resizes my IE window. Do you know how can I avoid that? – sker Apr 04 '09 at 05:35
  • Sorry sker, I don't know the answer to that--it doesn't happen for me doing the above though, so there probably is an answer somewhere. Maybe IE is remembering its window size and it's unrelated to the debugging scenario? – Rex Miller Apr 06 '09 at 20:14
8

There seems to be one case in which none of the above but the following helps. I'm developing a project for Windows Azure cloud platform and I have a web role. There is indeed a radio button Don't open page in Project -> {Project name} properties... as was pointed out by Pawel Krakowiak, but it has no effect in my case whatsoever. However, there is the main cloud project in solution explorer and there is the Roles folder under it. If I right click my web role in this folder and choose Properties, I get another set of settings and on the Configuration tab there is the Launch browser for flag, after unchecking it a new browser window is not opened on application start up.

stepank
  • 456
  • 5
  • 8
5

Joao Costa answer also holds true for .Net core 2 projects.

launchsettings.json --> "launchBrowser": false

"profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
}
chri3g91
  • 306
  • 5
  • 7
  • 2
    This was super helpful. Worth noting that this launchSettings.json is hidden under Properties "Folder" in "Solution Explorer" – netpoetica May 06 '20 at 01:23
5

This is what solved it for me:

Go to Project Properties > Debug > Uncheck "Launch Browser".

enter image description here

Arad
  • 1,815
  • 2
  • 19
  • 39
4

In Visual Studio 2019, I resolved the same issue as below:

Go to your Visual Studio options Tools >>> Options >>> Project and Solutions >>> Web Projects then finally untick option >>> Stop debugger browser window is closed, close browser when debugging stops

Step 1:

enter image description here

Step 2: untick option >>> Stop debugger browser window is closed, close browser when debugging stops

enter image description here

Step 3:

Then finally click on >>> OK button, these are all the steps to resolve the issue.

Anjan Kant
  • 3,168
  • 31
  • 34
3

I looked over the answers and didn't see the solution I found mentioned. If it was, my apologies. In my case, currently using Visual Studio 2015. In the solution explorer, right click on the Project file and click properties. Go to the Debug tab and this should have info for how you're launching "IIS Express or Web(DNX)" for the first two drop downs, and then there should be a checkmark box for "Launch URL:". Uncheck this option and your browser won't be automatically launched everytime you go to debug your application. Hope this helps someone out.

Cody Gaut
  • 31
  • 3
3

You can right click on your project, then choose Properties , on Debug tab you should uncheck launch browser checkbox.

Siavash
  • 2,599
  • 4
  • 26
  • 36
2

While there are several excellent answers, ranging from usual suspects to newer solutions, I would like to provide one more to the fray that addresses what you should do when you are working on a solution with multiple projects.

Before I arrived at this solution, I kept looking at bindingInformation in the applicationhost.config of the solution, tirelessly looking for any hint of why things were simply not working.

Turns out, the simple thing that I overlooked was that different projects have individual settings too.

So, besides Project > {Project-Name} Properties... > Web > Start Action on my Backend Project, I also had to Go to Website > Start Options... > Start Action on my Frontend Project. Once there, I selected Don't open a page. Wait for a request from an external application and have been happy ever since!

Backend Settings Frontend Settings

Community
  • 1
  • 1
Siddhant Rimal
  • 885
  • 1
  • 11
  • 26
1

CTRL+ALT+ENTER if your amends are front end only

http://blogs.msdn.com/b/webdev/archive/2013/06/28/browser-link-feature-in-visual-studio-preview-2013.aspx

wonea
  • 3,987
  • 17
  • 71
  • 134
Alberto
  • 495
  • 4
  • 13
1

If you're using the Web Publish feature in IIS, then the solution I found was to edit the publish configuration and remove the Destination URL from the configuration (leave it blank).

If this is defined, then every time you publish the project it will open the URL specified in the Destination URL (which is a redirect URL).

Reference: https://support.winhost.com/kb/a1604/visual-studio-publish-web-deploy.aspx

rboy
  • 1,605
  • 18
  • 30
0

You can now also get to the Web properties by clicking the dropdown arrow next to the Run button!

  1. Click dropdown button next to "Run"
  2. { Project name } Properties
  3. Click "Web" in the list on the left
  4. Under the "Start Action" segment, click Don't open a page.

You're all set!

PS: This works for me, I'm on version 16.5.5 of VS Professional 2019 :)