I am a fairly new to developing applications on Mac OS. I am using Visual Studio for Mac 2022 - Preview. I am all up to date and have created a ASP.NET MVC Web Application using .NET 6. I have started the debugger using the generated project. I make a change to the Index.cshtml file but that change fails to be reflected in the browser after saving the file. Any ideas if Hot Reload works in Visual Studio for Mac? I dont see any button to toggle the Hot Reload as all screenshots i have seen are for Windows Visual Studio. Any help would be appreciated as stopping and starting the debugger each time a change is made is very inconvenient. Thanks.
EDIT:
I have installed the Nuget Package
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
And then updated my Program.cs file as follows:
// Add services to the container.
builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();
My changes to .cshtml files still do not want to recompile after saving.
Any more help would be appreciated.
Visual Studio for Mac
Version: 17.0 Preview (17.0 build 5186)
Created a new Web Application (Model-View-Controller) project.
I got it to work on the latest preview version of Visual Studio 2022 for Mac. You will need to add the NuGet package, and also add the service to your builder in the program.cs file as an extra service:
builder.services.AddRazorPages().AddRazorRuntimecompilation();
https://learn.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-6.0&tabs=visual-studio#enable-runtime-compilation-for-all-environments
I don't know of any way to do it within Visual Studio, but if you navigate to the folder with your .csproj in Terminal, you can type
dotnet watch
and it will load your app. Then you can make changes within Visual Studio, save, and the browser will automatically reload. The only problem is since it's running from the command line, it won't hit breakpoints in your program (I don't know of any way to do so anyway).
As mentioned above, adding builder.Services.AddRazorPages().AddRazorRuntimeCompilation() works well, the only thing that you have to reload the page manually though, while your project is running.
I'm working on a website to manage some database things for my company. I am using Visual Studio 2013 and the MVC framework.
I have the site working under the http://localhost:275333/Home/PricingList URL but my boss is old and crotchety and doesn't understand that he can't use that URL to view the site from his computer.
He wants to see the work i've done on the site but I'm not sure how to send him a link that will work on his machine.
Any help?
Are you using IIS Express? If so, read this Scott Hanselman post - one of the items he discusses is allowing access from other PCs
IF your machine is visible from their machine you can do the following:
Install IIS Express on your machine:
open Windows Explorer
click on the system drive (C:) in the folder panel
find the "Uninstall or change a program" button above the files list, click
find "Turn Windows features on or off" on the left of the window that pops up, click - check everything "Internet Information Services"
click ok, possibly restart
From Visual Studio set your project to use IIS Express, publish it locally. See MSDN for further assistance with that.
Find the IP of your machine by running ipconfig in a console
Send a link that looks like this: 'http ://(your_ip_here)/(optional_site_name)/index.html'
IF your machine is not visible you would have to make your own VPN, which is a subject of another post.
UPDATE
I'm certain this is a Visual Studio bug with no obvious solution. I've encountered a number of people who have the same exact issue. I have submitted a bug ticket with Microsoft here:
http://connect.microsoft.com/VisualStudio/feedback/details/778864/vs2012-is-spawning-two-iisexpress-processes-when-attempting-to-debug
If you are having the same issue as described below, please go vote up the bug ticket so that it gets more attention.
Whenever I attempt to debug an MVC3 (or MVC4) application in Visual Studio 2012 configured to run on IIS express (version 8), I get the following error:
Here's the kicker: IIS Express is starting, even though Visual Studio doesn't think so and the debugger fails to attach. The IIS Express tray opens and I can clearly see all configured websites are started:
Oddly enough, the IIS Express System Tray reports that there were some errors when running IIS Express. Here's what it says:
This is a serious WTF. It's reporting that 8080 is being used by an IIS Express Process - the one that was just started by Visual Studio. So, Visual Studio is attempting to launch IIS twice, and when it predictably fails the second time, the debugger bails. I should note that before launching the debug configuration in Visual Studio, I made absolutely sure no IIS Express processes were already running. I used Process Monitor to verify that Visual Studio is in fact attempting to launch IIS Express twice:
Notice in the screen shot above you can clearly see websites running on IIS Express PID 4732. PID 4924 is the second failed attempt at launching IIS Express.
This issue was initially occurring on a Windows 7 installation. I reformatted completely, installed a fresh copy of VS2012, and got the same issue. I went a step further and reformatted, installed Windows 8 and a fresh copy of VS2012, and the issue persists.
I have created brand new blank MVC3 and MVC4 projects. Nothing fixes it.
I'm tearing out my hair here. Any help would be greatly appreciated.
w.Brian, I have followed this post since it's start and have had the exact same problem for quite a while now and I have just discovered what is causing the issue for me. I have been able to reproduce and fix the error for myself with this:
The reason VS2012 is starting iis express twice is related to being attached to a domain and being logged into a domain account. Once I logged into a completely local admin account I was able to launch and debug an MVC4 application without any issues. This is using Windows 8 Pro, VS2012 Update 1, attached to my domain, and no other software/extensions/configuration. Completely clean installation.
Hi maybe this solutions could help you.
Manage RuntimeVersion=”4.0″ to “4.0.30319″
Example:
<applicationPools>
<add name=”Clr4IntegratedAppPool” managedRuntimeVersion=”v4.0.30319″ managedPipelineMode=”Integrated” CLRConfigFile=”%IIS_USER_HOME%\config\aspnet.config” autoStart=”true” /><br/><br/>
reference:Issue: Visual Studio 2012 > “Unable to launch the IIS Express Web Server”
Use Process Monitor to solve the issue
reference: Debugging the “Unable to launch the IIS Express Web server.” error from Visual Studio 2012.
Try switching to the visual studio built in web host and run it. After you run it once you should be able to switch back to iis express
reference: from the forum Unable to launch the IIS Express Web server
try re-installing Visual Studio 2010 SP1, which contains iis-express.
disable the logging module by modifying the applicationhost.config, which is located in the %userprofile%\documents\IISexpress\config directory. To do so you will need to comment out a couple lines in the file.
Under the / element, comment out the line
<add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" />
Under the // element, comment out the line
<add name="HttpLoggingModule" lockItem="true" />
After saving your changes try restarting iis express.
reference: from stackoverflow forum: Unable to launch the IIS Express Web server
Right click you MVC project /*all of them one by one*/
go to properties
go to web tab
you must be having having checked "Use local IIS webserver" radio box
in the textbox below it make sure no to projects have the same port which in your case is 8080
Have a look at the answer here:
http://forums.asp.net/t/1953087.aspx?VS+2013+Unable+to+launch+the+IIS+Express+Web+Server
It was strange behavior on a Windows 8 machine when 'bg' was part of the username
I might be a little late to the party - here's my two pennies:
a) http://saintgimp.org/2012/05/03/fixing-the-error-unable-to-launch-the-iis-express-web-server-failed-to-register-url-access-is-denied/
b) http://abhijitjana.net/2010/07/20/unable-to-start-web-site-on-iis-process-can-not-access-the-file-because-its-being-used-by-another-process-how-to-resolve/
Synopsis: There is a URL reservation for the current port (usually Skype)
Just in case, do you have 127.0.0.1 localhost defined in folder/system32/drivers/stc/hosts ? Otherwize, you can check here, this might just be the key.
Cheers
I had the same issue on Windows 8 and Windows 8.1 using my domain account. In my case changing the Documents folder path (Right click on the Documents folder -> Properties -> Location) from C:\Users\username\Documents to D:\Documents helped
This week, I experienced this identical issue: IIS Express starts, but VS complains it couldn't start IIS Express and debugging fails.
I finally resolved the issue by applying the June 2014 hot-fix to IIS Express:
http://www.microsoft.com/en-us/download/confirmation.aspx?id=43380
We (my IT support and I) found this hotfix after stumbling over and following a very unlikely problem. Apparently, MS verified a bug in IISExpress 8.0 which results in it misbehaving if any part of the application name contains the letter combination "bg" (my username begins with bg):
https://connect.microsoft.com/VisualStudio/feedback/details/848945/visual-studio-2012-iis-express-fails-to-start-if-application-name-contains-bg
Note: VS 2013 Update 4 already contains this fix, which may be why some people had success simply by updating to VS 2013.
Some other links we found concerning the issue (you may have to skim a bit to find the topic):
http://forums.asp.net/t/1953087.aspx?VS+2013+Unable+to+launch+the+IIS+Express+Web+Server
https://connect.microsoft.com/VisualStudio/feedback/details/865116/process-with-an-id-of-id-is-not-running
What worked in my situation was to unload the project, then to edit the csproj file. I removed all sections regarding IIS and IISEXPRESS. Then I reloaded the project and chose USE IIS EXPRESS from the project properties all over again. It then worked.
I ran into an identical issue today (IISExpress trying to start twice and failing when hitting Debug in Visual Studio) while helping another developer with a web forms site. After trying several solutions, we found that we could resolve the problem by:
Creating a new, empty Visual Studio solution
Adding an "Existing Website" pointing to a new, empty folder
Copying the contents of the existing (non-working) website into the new folder we created
Simply removing and re-adding the website to the original solution did not work, nor did creating a new solution and adding back the existing site. I can start IISExpress from the command line just fine.
After doing a before-and-after comparison of the .SLN files I believe that is where the problem lies. Since I had found a workaround I didn't spend a lot of extra time on it. Obviously recreating the entire solution from scratch may not be an option for larger projects (ours was a very small one) but hopefully this at least points in the right direction.
There are two instances of the site FrontEnd running of course, but notice that one instance is HTTP and the other HTTPS.
It's possible to get two instances when SSL Enabled is set to True in the web site properties but the Project Url on the Web tab is set to an HTTP address.
Make them both HTTP (or HTTPS) and that might fix it.
I just installed Visual Web Developer and the MVC Framework using the Web Platform installer, I used the ASP.NET option and it says that MVC is installed, but it doen's show up in the templates list when I open a new project.
I installed in Windows XP with a limited user (typed the Administrator password to allow the install) I guess this is the problem, but, how can I fix it?
I tries logging in with the Administrator account and executing the MVC installer but still can't get the Template in Visual Web Developer.
Any clues? Or any way to register the templates manually?
Thanks.
I uninstalled the MVC Framework and installed it again, now the templates are registered just fine.
Don't know what I did wrong the first time, but luckily it's working now.
I have an interesting situation where I need to deploy an ASP.NET MVC app to a (pseudo-boss's) local desktop machine so they can run it locally for data entry purposes. What would be the best way to get the app running on a vista machine without Visual Studio installed?
Ideally, It would be a one click that started a development web server and opened the page up in the browser.
I considered installing Visual Web Developer and then tricking it's dev web server into running the app, or even installing mono, since it has the nice 'start xsp here' feature that even a non-technical person can understand. The big thing is that this person is not very technical, so it needs to be easy for them to start and stop the application.
You need IIS installed, which should be available for Vista. Then just set up a working directory and put your app there, it's not 1 click but maybe.,.. 5.. :)
What about the Microsoft Web Platform Installer? You'd still have to add your own application, but it takes care of .NET, IIS, and dependencies.
Could you use something like UltiDev Cassini: http://www.ultidev.com/products/Cassini/ and build your own installer to set everything up for your user?