Saturday, August 10, 2002 | |
Greg emailed me about Groove yesterday, I too had taken note of the recent posting on Groove and I'd been kicking around the idea of downloading it and seeing if anybody else at work would be interested. Communication and collaboration are serious problems at work. We've been using Sharepoint, but the results aren't great; we're using it as a glorified file server with a web interface. Unfortunately, our connection to the Internet was pretty flaky yesterday and I couldn't connect to Groove the couple times I tried. Monday, hopefully. 5:22:16 PM permalink
|
"Be an MCSE in 6 Weeks!" And other marketing BS. Amen! 4:42:23 PM permalink
|
We're off!. Belated congratulations, John and Carolyn! 4:29:30 PM permalink
|
I've been incredibly busy lately. My company is deploying our Web Services for our early adopters, and I've been given the task of implementing the deployment procedures. One of the problems to overcome was that our developers are using Visual Studio .NET, which is an awesome development environment, but is simply horrible for doing automated builds. So the problem was to find a way to keep the developers happy working in VS.NET, but keep me happy doing build and deployment. Read on for my solution. 4:24:18 PM permalink
|
A correction to an earlier post about Jim Klopfenstein's article on System.Management. I said that "I've been playing in System.Management lately". What I should have said is that I've been playing in System.DirectoryServices lately. Yes, it's been that kind of month. Anyway, aside from a mea culpa, I figured I'd elaborate on what I meant. The specific problem I set out to solve was to install web services on our production servers. These being production servers, IGS doesn't just let us terminal server into the box on an admin account and start hacking away. We open a change ticket, give specific install instructions, and a tech implements the change. Being that 1) I have to write the install instructions, and I'd rather write code, and 2) Written procedures are brittle, prone to erroneous implementation, and slower for the tech to implement, I decided to use NAnt to help out. The only problem with this was tweaking IIS, to set up virtual directories, applications, and tweak the security settings. NAnt has no built in support for this, and although there was some muttering on the NAntContrib mailing lists about implementing this, but I have deadlines and it's really not too hard. I already knew about the ADSI model for IIS and had worked with it before. System.DirectoryServices is the managed way to do this, so I set out to write the NAnt tasks to support my installation. But, still, there was a stumbling block, namely that IGS standard practice is to disable the default site, create new virtual sites, and put the website content somewhere besides c:inetpubwwwroot. This means that you won't find the website running on port 80 at IIS://localhost/W3SVC/1/Root. So I wanted a task where I could write
and then have the correct ADSI path stored in the iis.path property, so I could use it later like so, in this instance to create a virtual directory named "Foo" off the root of the site:
Really, this code ends up being pretty simple. The search looks like this: using (DirectoryEntry w3svc = new DirectoryEntry("IIS://localhost/W3SVC")) As you can see, though, it's a bit more code than Jim's example. However, when I tried out Jim's code, I kept getting an error on the ManagementScope.Connect() call that the scope was invalid. Does this code run only on server versions of the OS? Also, I'm having trouble finding documentation on what scopes exist. So I'll be looking at the System.Management approach, but for now, System.DirectoryServices works for me. (You can download the full source for my task from here). 10:02:50 AM permalink
|