I start my web application from Visual Studio (2013) using IIS express. If I set it as startup project and start it directly everything works fine.
In the project properties "Always Start When Debugging" is enabled, so the web app also starts when I start my web client in the same solution. But for some reason some dependencies in the webapp\bin directory are exchanged with different version (in this case the Newtonsoft.Json.dll is overwritten with a very old version).
Can someone please explain me the mechanism behind this functionality? Why is my webapp\bin directory touched when I start a different project?
Related
I am trying to run a specific Web Project in a way to receive requests from an external application.
So when pressing F5 it starts the current Web project in visual studio with debugging but waits from the other site for web calls.
The problem is that for the other web site to work i have to launch several other sites, with services, resources, auth server etc. Some are not part of the solution - which means I cannot use "Always launch when debugging".
For that I have the executable that you can see grayed out in the "Start external program" section. The "IISExpressRunner". This program will also open the site that will access this one after everything is setup.
My problem is that I currently need to run that manually every time I start debugging because both options cannot be selected at the same time - which of course does not make sense since it can debug only one thing.
I can debug the WebSite via the IISExpressRunner application alone, however that has the implication that I need to run VS in Administrator mode, since the app requests UAC to be able to disable IIS to run IISExpress on port 80 - specific for domain alias and authentication server redirects for Google and Facebook logins - to be able to run it locally in the dev environment.
So is there a way to have Visual Studio debug the current project and automatically after debug has started to also execute this external application without debugging it?
A workaround I could think of is that you could call the bat file before you debugging the app using code "Debugger.IsAttached()".
Run batch script before Debugging
There is a manual process you can use. During running a debugging session, right-click the project you want to also start debugging, go to the Debug submenu, and click Start New Instance.
I am using visual studio 2010 on .net4.0 for my projects and I've found that each time I do a change in my project, I build and run but I cannot see my changes. I've found this happening once or twice mostly with my web service projects. I'm no pro with web services and am encountering this problem for the first time so would be grateful to anybody who can tell me what has gone wrong with my project and how to fix it.
Edit
My asmx file is where I have added an additional method but am not able to see it when I run F5
When you change the compiled code in a web service or site, you need to make sure you restart the web server hosting that service or site.
You are probably using the ASP.Net Development Server. Although Visual Studio starts this server for you, it does not restart it automatically when you rebuild. As a result, the server will still be referencing the previous version of the assembly that you changed.
In the Windows system tray you should see one or more icons depicting a web page with a purple gear overlapping it at the bottom-left.
There are three of them in this example:
You can stop the server by right-clicking its icon and selecting "Stop". (If you have more than one, you will learn to identify the one you need to stop by recognizing the port number shown in the tooltip when you hover the mouse over the icon.) Visual Studio will restart it when needed.
When you're making changes to a service or site, use this workflow:
Make code changes
Stop the ASP.Net Development Server
Rebuild the project containing the changes
Run
Client-side code vs. Server-side code
If you're changing client-side code (HTML or JavaScript), then you may need to force your web browser to refresh its cache. In Windows this is normally done by pressing CTRL+F5 in the browser (see refreshyourcache.com/en/cache for more info). If you're changing compiled code (C#), and restarting the server doesn't help, try restarting Visual Studio, then do Build -> Clean Solution, then Rebuild.
If you are facing issues in ASP.Net Development Server, I think you are better off creating a virtual directory in IIS and host your web service there. That way you should be able to make your changes, just build it (don't run it) and that should be available on your virtual directory and you just browse to webservice. Then you don't have to hit F5 again and again and don't have to worry about instances of ASP.NET dev server.
Following article contains good step-by-step instructions on how you do it on IIS 7.0. This article is about hosting a website - however, hosting a webservice is not different.
http://www.codeproject.com/Articles/28693/Deploying-ASP-NET-Websites-on-IIS-7-0
I'm writing an ASP.NET web service, in C#. Before yesterday if I wanted to debug it I would just press F5, and ASP.NET Development Server would start hosting my service. Breakpoints would be enabled and would work. Recently this functionality is gone. Now when I start debugging, Development Server is started but the old version of my web service is hosted, and breakpoints do not work. I get a warning that versions do not match.
It does not help if I rebuild everything, or change the assembly version, or even change the file name of the DLL. It does not help if I delete the whole temp folder %TEMP%\Temporary ASP.NET Files. Old web service will be pulled out from who knows where, and stored in temp folder again.
Major change before yesterday was that I had installed IIS. Web service that is installed there works as expected, but I need to debug it as well. I thought that the problem is that I installed the web service (with vdproj), so I uninstalled it, but this did not help either.
How to prevent the system from caching the old version of web service. Where is this old version stored anyway?
Check the Web settings on your ASP.NET project. To get back to using the ASP.NET Development Server for F5 debugging make sure the "Use Visual Studio Development Server" radio button is selected under the Server heading. I also specify a specific port so other projects in my solution can consistently reference it (in my case I'm dealing with a web service). There's a good chance that you will find the "User Local IIS Web server" radio button selected.
Hope that helps.
EDIT: The problem here is not about IIS, but about changing the target build output folder of web service. It must be bin\, or Development Server cannot find it. Rebuild did not help because it would change dll file in new folder, but old file would remain undisturbed in bin folder.
The reason I ask is that I must be doing it incorrectly as I am having a lot of problems and I feel like I am chasing my tail here.
Using the how-to here, http://msdn.microsoft.com/en-us/library/zt39148a.aspx, and that works great.
So this windows service that I have built is a part of a solution that contains an ASP.NET MVC3 web UI, a class library business domain, and an installer for the windows service. Both the windows service and the MVC3 app reference the class library. I've marked only the Windows Service project as the "primary output" in the installer app.
Now, after a reboot, I can do build the installer and install the service and it runs great. However, after that first time, I have nothing but problems. In visual Studio, the uninstall option is grayed out, which is wrong, it should be active. I can uninstall in Windows but for some reason the process is still running. From there I cannot rebuild the installer project because the exe won't delete and is still running.
Where am I going wrong?
I am attempting to debug a RESTful WCF service I've created using a web browser as my client. Initially things go well however after stopping the debug session and making some changes to my code when I restart it's as if the old code is still being run. My breakpoints are ignored and it's as if a process is not being stopped.
I am running the service within Visual Studio and here's the URL I am asking the browser to retrieve:
http://localhost:25000/IntegrationService.svc/DeskQueue/tophd
It's clear the proper method is being called but the breakpoint I have at the top of the method is being ignored. Is there some external process I need to stop?
Thanks for any help.
Maybe it would be more convenient to deploy your service on IIS (Project settings->Web->Use Local IIS Web server, Create virtual directory) and then debug the service from Visual Studio (Debug->Attach to process->w3wp.exe).
You need to kill Cassini (the WebDev Server) as it's holding on to your older built WCF Server code....it doesn't automatically reload the newer DLL.
There are a few options:
You can manually stop Cassini by looking in your Notification area for the "ASP.Net Development Server" icon (yellow with world inside) and selecting Stop (via the context menu or Dialog).
You could install the Visual Studio addin KillCassini, so you just have to press a key combo to kill the server when you wanted it killed
http://visualstudiogallery.msdn.microsoft.com/1269c9a1-fcfe-4b47-91e7-22c7027f3c41
You could turn on Edit-and-Continue, so that it restarts a new Cassini the next time you Debug
Automatically stop/restart ASP.NET Development Server on Build
If you have some really exotic debug/test/run cycle then you could leverage a drop-in compatible replacement for Cassini that comes with source code.
http://cassinidev.codeplex.com/