Setting up CruiseControl.NET - c#

I'm trying to set up CruiseControl.NET (1.6)
The installation completes successfully, however i cannot seem to start the actual service.
When running the CCNET.exe i get a console window that the last thing it writes is: Initialising Security.
Running the service from service control manager also does not work..
Trying to access localhost/ccnet returns no response.
What am i missing here? I have installed the product in the past with success, not sure what is wrong this time.

#lysergic-acid - Even if the main config is done (server/ccnet.config) and you are running it from a command prompt, you won't see the web dashboard yet.
If you are installing on IIS7, the setup process for the web dashboard requires steps that aren't in the CC.Net webdashboard setup docs in sourceforge.
What got me working was this CC.Net web dashboard installer page, which is from the Confluence site, rather than the source forge site: http://confluence.public.thoughtworks.org/display/CCNET/Installing+the+Web+Dashboard
In the comments area, there are specifics about IIS7 (I'm assuming that's part of the problem).
I am still having trouble with the service, so I can't help you there, but you can definitely run the web dashboard without the service as long as the cmd prompt version is running.

The setup of the virtual directory for the web front-end might of not completed successfully. Try using the IIS Service Manager to create an application around the Service folder. I think there's an issue with the install if you forget to unblock the download, but I haven't fiddled with it enough to be sure.
Keep in mind that the web front-end and ccnet service are two totally isolated pieces. You should be able to see the web front-end even if the ccnet service doesn't run.

I had trouble one time when installing it and IIS was set to disabled (and thus was not running), I had to uninstall CruiseControl.NET, start IIS and then reinstall CC.Net.
Do you have a firewall that blocks ports? The default port is 21234.
You need both the web part and the service part installed to be able to run CC.Net.

Related

How to debug multiple services in same solution as different users per service?

Core Question
Given a solution that has multiple projects (A console app and two services, along with some shared libraries), how can I debug the solution (w/breakpoints in both web services + console) if each service needs to run under it's own service account?
Ideal
Set up the project to allow the F5 debugger to immediately attach to both services and the console, while running each service under its own account.
Project Set up
I have a single solution with multiple start entries. I already have it set up to launch each entry point when I click debug, but run into issues actually testing as the database requires the use of windows auth for each service account to connect, but the two services require different service accounts.
Solution:
Common Library (shared by all 3 projects)
Service 1 (WCF, needs to run as EXAMPLEDOMAIN/ServiceAccount1_DEV)
Service 2 (WebAPI, needs to run as EXAMPLEDOMAIN/ServiceAccount2_DEV)
Console application (needs both services, don't care what account this runs under)
Each service is talking to different physical databases, it is not possible to
Tried so far/things I cannot try
In previous versions of VS, I used VSCommands's DEBUG AS to solve this issue, but that project appears to be dead for VS 2015.
Tried to run visual studio itself as the various service accounts, but run into a "Trial period expired" message if not running it as myself.
Tried to use "C:\Windows\System32\cmd.exe /C runas /savecred /user:ServiceAccount#_DEV DebugTarget.Exe", which works for the console but I haven't figured out how to launch a service with this.
I cannot use a different version of VS, as I am in a locked down corporate environment and only have VS 2015 installed.
I can use plugins on manager approval but have no budget for them, so a plugin like VSCommands is an acceptable answer for my case, but only if it is free.
I cannot change the SQL permissions, as each service is talking to separate physical databases which do not share permissioning.
Edit: Missing ideal outcome block.
Solution:
One idea is that just turn to the project property to change the IIS Express to local IIS, and then run two projects with two account in IIS.
Another thread also discussed the same issue here:
how to run iisexpress app pool under a different identity

How to debug calls to ASP.NET web api in Visual Studio [duplicate]

I built a Web API service that's hosted locally on my machine in IIS. I have an iOS app that I'm running via XCode that makes the call to the web service. The connectivity is there, and works. The iOS app successfully makes the connection to my published web service.
The problem is my web service is returning a non descriptive error to the client (iOS), so what I need to be able to do is step through the web service code while running my iOS app.
So, in summary:
I run an iOS app via my MacBook, and it connects to my .NET Web API service.
My Web API service is published to my local IIS, and is returning an error back to the client.
Breakpoints aren't being hit in Visual Studio - do I need to attach my Visual Studio debugger to a specific process? I've tried running my web service in debug mode while running my iOS app, to no avail.
How can I step through my web service code when running the client app (iOS) that accesses the web service?
Attach to process - http://msdn.microsoft.com/en-us/library/vstudio/3s68z0b3.aspx
Make sure "Show processes from all users" is checked, and pick w3wp.exe
You may need to hit the service once first to make sure its started.
To debug an app that's hosted by IIS, you want to attach to process (in Visual Studio it's Tools->Attach to Process or Ctrl+Alt+P) and pick w3wp.exe from the list (you might have to check a few boxes for the process to show up).
Another option is to use our free VS Extension called Conveyor
https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti
With it you open up IIS Express to remote connections on your network (or even the web through tunnelling).
Once you've done that you can debug the project directly from VS and connect to the Conveyor port number (or domain name via tunnelling) and debug as you would locally.
you can use Postman client.
First : run the API FROM visual studio
Second : go to postman put the url and add the parameter in body
More information : http://www.tutorialsteacher.com/webapi/test-web-api
this often works for me i generally list all of the processes in IIS with appcmd command
appcmd list wp
and pretty much you know which process to attach by seeing the names of the web services
if appcmd is not available please visit
Here for configuring this

Visual Studio 2008 Development Server not starting

I have a C# web service that I am trying to debug in Visual Studio 2008, and when I try to run it, Internet Explorer pops-up as expected, but it just displays 'waiting for response from localhost...' in the status bar. I have left it running for a few minutes and it never responds.
I have other web services that I am able to debug fine, is VS2005 and 2008. The problem web service is impersonating a different identity in the web.config file, but I have no problems with this same user on a different web service (in VS2005).
Does anybody have any ideas on what might be preventing it from starting up? Interestingly, a colleague has the same problem with a web service that IS working on my machine, even though we are working with identical code. Something must be configured differently...
By the way, I've noticed that the 'Temporary ASP.NET Files' folder is missing from both
C:\Windows\Microsoft.NET\Framework and C:\Windows\Microsoft.NET\Framework64... I certainly haven't deleted them, and other web services debug okay, so is this just a red herring?
We are also on a domain which has its own firewall (outside of the developers' control) - could this be blocking it?
EDIT: I have just removed the user impersonation for a quick test, and it worked. So there must be something about Visual Studio 2008 that does not want to run when impersonating THIS particular user. Any ideas what configuration I would need to change to correct this?
I have had the same issues with impersonation; I don't know if Cassini (the built-in VS web server) supports this properly. About the best advice I can give is to either use Local IIS with an app pool running as your impersonated user or to attach your debugger using remote debugging to a remote IIS server.
I believe using Local IIS will attach correctly & automatically if configured as much in the Web tab of Project Properties. You'll have to run VS as an admin to get the virtual directories setup automatically by VS in IIS.

Debugging RESTful WCF Service

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/

Exception in Web Service locks DLL and prevents publishing. Workaround?

I'm using a native DLL (FastImage.dll) in a C# ASP.NET Web Service that sometimes locks (can't delete it---says access denied); this requires stopping IIS to delete the DLL. The inability to delete this DLL in the bin folder of my published Web Service prevents me from publishing successfully (even though it thinks it published successfully!), which makes development and fixing the bug difficult (especially when it just happily runs old code since my changes may not be reflected on the server!). Note that the bug causing the Web Service to bomb and lock up the DLL is in my code, which is outside of said DLL, so I think this is a more general problem than just the FreeImage library (not to bring them any heat).
Has anyone experienced this?
Is there a way to make sure that when it says "Publish succeeded" from the VS IDE that it really means it, or to run sort of script to check that the files are really deleted before it attempts to Publish (like a pre-build step in VC++). (Right now I manually delete the files before publishing to make sure that I know the DLLs were replaced, instead of running old DLLs. It's still a problem, though if I can't delete the DLL.)
How would I detect whether a file was successfully deleted from a batch file? (so I can stop and start IIS if it fails)
Is it possible to stop and start IIS from a script (preferably from the Publish... action in the VS IDE) and if so, how?
Using the IISReset command line tool will only restart IIS on the local machine, not on a remote server to which you are publishing.
Assuming that you are publishing to a Windows 2003 server, I'd suggest trying the slightly less drastic step of stopping and restarting the IIS AppPool in the web site or virtual folder in which the web service runs. (That way you are not taking all sites that run on the target server offline.) This too assumes that the web service runs in its own app pool. Ideally it should, so you keep it isolated.
I'd recommend getting away from using the Publishing process and to look into using a Web Deployment Project. Here is a post on ScottGu's blog detailing VS 2005 Web Deployment Projects.
The advantage to the Web Deployment Project approach is that it provides you with all the power and capability of MSbuild, as it is really just a convenience wrapper around MSBuild. Here's a post from the MSBuild team about pre-build and post-build capabilities
Hope this helps.
You could use the IISReset command line tool to stop/restart iis. So you could write a simple batch file to stop iis, copy your files, and then restart iis. I'm not sure how to integrate this with the VS publish feature however.

Categories

Resources