Powerd by dasBlog RSS 2.0
 Friday, October 12, 2007

Slow week on the blog. Been busy with work, flooring project at home, and getting ready to announce a new personal development project (and all the research I've been putting into it).

VsTestHost was crashing on me today. It started out that TD.Net was failing, so I switched over to using the TestView to invoke the tests, fail. Since I'm running VS 2008 B2, I switched back to VS 2005 and created a new solution with only a handful of projects, fail. Installed the latest version of TD.Net, fail. Googled on VsTestHost.exe, only got a handful of results, one of which suggested re-installing VS (argh). Finally decided to test in debug mode, oh look a stack over flow exception. One of the posts on Google even mentioned that stack overflow exceptions are not (always) caught by VsTestHost. The stack overflow exception was caused by a property referencing itself, which was the result of an over ambitious find replace all.

Friday, October 12, 2007 10:33:50 PM UTC  #    Comments [0] - Trackback
Programming
 Sunday, October 07, 2007

I'm not even sure what led me to start playing around with the new Linq to SQL (formerly called DLinq) DAL in VS2008B2, but I'm glad I did. I discovered some very fascinating functionality that I believe will really shake up the way most developers approach the DAL. I see some similarities  between Linq to SQL and other OR/M plugins (tools, methodologies) out there, but since this is Microsoft's approach, I anticipate it will catch on en mass. I don't believe Microsoft is trying to make the other methods obsolete, but that they are delivering a product demanded by their customers. One of the problems with the current OR/M scene, is that there are so many options to choose from, that you never know if you've made the right choice. While Linq to SQL, may have some deficiencies, it will give developers, and their managers a little piece of mind when breaking from the traditional DAL mold. I can only hope that Linq to SQL does not disappoint, even after taking into consideration it's a Gen 1 product. Issues such as performance, extendibility, and plugability (into one's code or way of doing things) are some things that I want to explore (as with any tool such as Linq to SQL).

I used this article to help jump start my foray into Linq to SQL (let's just call it L2S from here on). Being away from WinForms for so long, I've missed out on some of the data binding features available, and was surprised to see how easy it was to get up and going with a grid and details form. I remember seeing the videos when VS 2005 was coming out, but never had a need to play around with it until now. I've also never had good luck with drag and drop data binding, as it assumes to much, I'm hoping that there are plenty of hooks available to help customize the data binding experience, but any fault with data binding should not be confused with L2S as they are 2 separate features (actually data binding is a feature, and L2S is a feature of VS 2008, and part of the .Net Framework 3.5).

In a couple of minutes, I was able to generate a data class using the new visual OR/M tool in VS2008, create a binding source, drag/drop elements from the binding source onto my form, and create a functional application. Functional should not be confused with enterprise level, nor was I expecting it to be. If I could create something like that in 2 minutes using drag and drop, my value ($$$$) as a developer would be on the decline. Allow me to recap some of my steps I took to create a functional application.

  1. Create a new Winforms 3.5
  2. Right click on the new project and select add new item, choose Linq To SQL Classses.
    1. This will create a new .dbml file. It will open a design surface where you can drag/drop tables, views and stored procedures. This creates a DataContext class.
  3. Create a new database connection, or open an existing connection on your Server Explorer Window
  4. Drag tables from the database from the Server Explorer to the design surface of your DataContext class.
  5. From the top menu bar, choose Data/Add new data source, or, show the data sources window, and choose the add new data source option
    1. Create a project data source
    2. Here is where it starts to get tricky. Select an object to make a data source for. It will depend on what you are trying to accomplish and your database schema. The schema I was using, relies heavily on extended tables, and it took me a couple of tries to pick the object that made the most sense. It's possible that I will have to go back and create a different object down the road as I get more into this.
  6. If you haven't already opened the Data Source window, do so now. Select some elements from your data source, and drag/drop them onto the default Form1. I chose a grid to list a collection of objects, and then their details below. A BindingNavigator was added for me automatically. If you didn't get one, or need to add one later, just drag one onto the form from the tool box, and set it's BindingSource property to the bind source you created in step 5.
  7. Open the code view of Form1
  8. Add a private member variable: DataClasses1DataContext test;
  9. Under the form's constructor, do the following
  10.    1: public Form1()
       2: {
       3:  InitializeComponent();
       4:  test = new DataClasses1DataContext();
       5:  if(test.DatabaseExists() == false) //Not required, just testing feature found thru intellisense
       6:   test.CreateDatabase();
       7:  x_t_personBindingSource.DataSource = test.x_t_persons;
       8: }
  11. Jump back to the Form, and add a button to your binding navigator for saving. Double click on the new button to have the event handler code generated and add the following:
  12.    1: private void saveToolStripButton_Click(object sender, EventArgs e)
       2: {
       3:  test.SubmitChanges(); //Need to add exception handling and pre-save validation
       4: }
  13. Build and Debug.

A connection string is automatically added to your App.Config file for you. You can test out the CreateDatabase feature by changing the connection string to a non-existent database. You should be able to add/edit/delete records in your database, using this simple application we just created. The DataContext class, is the top level class in the hierarchy used to work with your database. It controls the connection to the database, and, as you've seen, has support for creating and deleting the database. The create database feature reminds me of a similar feature in the Castle's Active Record project. Just take a look via object explorer or intelli-sense, all of the methods available to you. I've listed the ones that caught my attention below. 

  • Create/Delete Database
  • Deferred Loading Enabled: Implies that L2S uses deferred loading for many to one relationships
  • ExecuteCommand: Direct execution of a command.
  • ExecuteQuerey: Returns IEnumerable or <T> based on a provided query.
  • GetChangeSet: Returns changes tracked by the DataContext
  • Transaction: Set a transaction object to support transactions

Validation - Check out ScottGu's part 4 on L2S

  • Schema Validation - Linq is supposed to check for obvious schema issues, such as null values. However, the exception I got when I tried to insert a null value, came from SQL, not Linq. Also I was adding items on a grid, and added 2 items in a row. Their Id fields were both set to 0, and when I went to save, I got a Linq exception saying I couldn't have duplicate keys. Setting the ID values to something different, allowed me to get to the database at least, so I need to look into this more.
  • Property and Submit Validation - Create a partial class, then a partial method that implements validation when a property is changed. If you type partial in the code view window, you will get a list of partial methods you can implement. You have access to 2 methods for each property, OnChanging and OnChanged. You also get access to a OnValidate method. If there is an error, you throw an exception. This works OK, but doesn't provide the nicest feedback available. However, for anything less then an enterprise application, this may be OK, especially in a proof of concept, or highly iterative application, where you can add better a better user experience later. 
  • Insert/Update/Delete Validation - Same scheme as property and submit validation, but you can have validation in response to an Insert, Update or Delete.
  • ChangeSet: Starting with Beta2, you can get access to all of the changes in the DataContext. One possible use, is to inherit the DataContextClass, and override the SubmitChanges method, checking the ChangeSet and performing validation.
  • My Take on validation:
    • There is some work that needs to be done with validation. I could see an edition to the Enterprise Library designed specifically for L2S.
    • My own idea would be to create a class to track validation errors.
      • New custom exception called validation error.
      • A collection of validation errors, including error text, and the property that is invalid
      • Starting to sound allot like CSLA

Other things I noticed

    • You can manually create classes in the Design Surface, as well as edit the auto generated ones
      • Control nullable, access modifier, and inheritance modifier.
    • There is an inheritance property you can set on the design surface, allowing you to indicate which objects inherit from another. This looks very promising for some of the schemas I work with.  

What's Next?

I'm going to read over ScottGu's 7 part series on L2S to get some good ideas on what I can do with L2S, and see how it can fit into future and existing projects. I am really excited to see how people start to integrate L2S with their existing projects and frameworks. Of particular interest would be using CSLA and L2S.

Additional Resources

Note: First post where I've had formatted HTML for source code. I'm using the Code Snippet Plugin for Windows Live Writer.

Sunday, October 07, 2007 10:02:14 PM UTC  #    Comments [0] - Trackback
Programming | Review For Future Projects
 Saturday, October 06, 2007

PolyMon is an open source agentless monitoring application written in the .Net Framework, and available, with source on CodePlex. It is designed as a client/service/server architecture, consisting of a WinForms management application, Windows Service monitoring engine, and uses SQL 2005 for it's data store. I have written about Polymon before in my post about Network Monitoring, so you should check that out for some more details. I will re-iterate the available monitors here.

  • CPU
  • Disk
  • File (Age and Counts)
  • Windows Performance Counters
  • Ping
  • PowerShell Scripting
  • SQL Monitor via Stored Procedures
  • SNMP
  • TCP Port
  • URL
  • Windows Service Monitor
  • WMI Monitor

I set this up at home, with limited success, and at work (to monitor dev and test instances) with better success. The only difference between the 2 installs is I'm using integrated authentication at home, and SQL authentication at work. I've noticed some other issues with domain authentication at home, so I feel that it's an AD issue at this point, and not a problem with Polymon, although there may be the opportunity for more robust error logging in Polymon if this turns out to be the case.

I setup Ping and SQL monitors based on our production monitoring system at work, and only had to monitor the SQL monitors slightly to support Polymon, which requires two output parameters defined in the stored procedures. I wanted to setup the WMI and Powershell monitors in place of some of the custom SQL monitors, but didn't have the time. I've added some links at the bottom to BizTalk Powershell resources for future reference.

Pros:

  • Free and Open Source
  • Actively Developed with a road map that makes sense
  • Extensible without modifying the core application
  • Little need to extend given the excellent coverage provided by the default monitors, especially PowerShell
  • Runs on SQL 2005, so you get all of the benefits of SQL 2005, plus you could write custom reports in Reporting Services and have those emailed.
  • Monitor not just uptime, but other stats as well. For example, response times are logged, and the SQL monitor supports returning

Cons: 

  • Monitoring Engine is not multi-threaded - If you had 61 monitors set to run every minute, and they all took 1 second, you would start to see lag. This is a know limitation and can be worked around by not having that many monitors set to run that often. It is on the development roadmap for the project, and is going to be addressed in two ways. The first is to multi-thread the monitor engine, which will allow scale-up. However, any good developer would know that just multi-threading is not the end all solution, and you could run into additional limitations as a result of running multiple threads. Therefore, the second part is to allow monitoring engines installed on separate computers, to run off the same database, effectively adding scale-out capabilities. Another possible benefit to this, is it would allow you to install the service on the servers you want to monitor and not have to deal with as much security. However, this would be the same as a monitoring application that requires an agent.
  • Database can grow large very quickly, which can also slow performance. You need to use some common sense, set appropriate retention policy, and possibly re-index to meet your individual needs.
  • No web interface. I actually like the WinForm application, but can also see were a web app would have it's advantages. There is a plan to replace the WinForm application with a Web Application. I'd like to see both, but can understand limited resources.
  • No Operator Groups - Operators are defined individually. However, if you have a distribution list setup, it makes it a little easier.
  • Only Email Alerts
  • No email of reports that I can see, however, this could be considered a Pro, as you could use SQL Reporting Services to make your own reports
  • Remote connections for monitors represent administrative and security considerations. For example, you need port 1433 open to make remote sql connections, WMI does not look very administrator friendly for remote connections, and the same would apply to WMI thru power shell. This is a limitation of the technologies themselves, and not Polymon, but worth pointing out.

Links

Saturday, October 06, 2007 10:12:22 PM UTC  #    Comments [0] - Trackback
Review For Future Projects | Tools
 Thursday, October 04, 2007

Just a quick post about a project called Rifidi, an open source project developed by Pramari and the University of Arkansas. Rifidi allows you to simulate how RFID would affect your processes using a graphical interface. I've only had the chance to do a quick once over of the web site, but it defiantly looks interesting. While I don't know if it will have an immediate impact on my current project, it may in the future.

Almost more interesting, is in the programming behind the simulation, and the fact that it is open source. Pramari is characterized as a "world leader in open source RFID software" in the press release, so I will defiantly be checking out their web site to see what they offer.

Thursday, October 04, 2007 7:12:38 PM UTC  #    Comments [0] - Trackback
Review For Future Projects
 Wednesday, October 03, 2007

Wow! Microsoft is making available, starting with the core libraries of .net 3.5, the full, commented source code for the .Net Framework. ScottGu posted about it here, and ScottH has a podcast about it here. Not only are they releasing the source code, but they are doing it in such a way as to make it actually useful to the end developer, by offering full support in Visual Studio 2008. Not only can you download the source and install it, but Visual Studio 2008 will be smart enough to go out to a server hosted by Microsoft and dynamically download the correct source file. By correct, I mean, that the service is smart enough to know what patches, service packs, etc you have installed. Chalk this up as one huge reason to jump on the VS 2008 band wagon.

For those of you in legal, the code is released under the Microsoft Reference License, which in a nutshell, states you can review, but not compile. Now at first, I thought, who cares if you can't recompile, but then I got to thinking, and remembered a project someone was telling me about where they used reflector to view the source and implement an asp.net server running off the compact framework. Given the use of the compact framework on my current project, I could see a similar need arising. I will have to monitor this closely and see what other people say, as I'm sure I won't be the only one looking to implement some full framework features on our closed WinCE systems.

Wednesday, October 03, 2007 6:42:53 PM UTC  #    Comments [0] - Trackback
Programming

My friend dialed up 1-800-MyComputerIsBroken and got me on the other end (as usual). The problem, a partially broken network adapter, you know when windows says your NIC is connected, but it just doesn't seem to work reliably. In this case, my friend was unable to connect, or stay connected to World Of Warcraft (the horror). Short of replacing the NIC, my friend had tried most of the common stuff, like different network cable, trying a different computer with his normal network cable, plugging a different computer into the same port on the firewall, etc. My first thought was, maybe WoW got corrupted, but after my friend started browsing the web he noticed timeouts and other issues which led us to believe it was a wider problem.

I know I had come across some dos shell commands that is supposed to reset your NIC, so I set out to rediscover those commands. I was pretty sure Scott had posted something awhile back, and after a quick search, I had what I was looking for. The following commands are taken from Scott's post:

   1:  ipconfig /flushdns 
   2:  nbtstat -R 
   3:  nbtstat -RR 
   4:  netsh int reset all 
   5:  netsh int ip reset 
   6:  netsh winsock reset
 

While the post's title makes it sound like it's a Vista only fix, it did work for my friend who was running WinXP SP2. I had also come across another site that talks about some of the commonly used command line utilities.

Wednesday, October 03, 2007 10:45:43 AM UTC  #    Comments [0] - Trackback
Technology
 Tuesday, October 02, 2007

In an email from "Microsoft For Partners" today, I was alerted to a new site called PhizzPop. From the email "We created Phizzpop.com to support Web and Design Agencies with training and resources, facilitate collaboration, and showcase great work." A quick look at the site shows that it has samples of work that other people have done, as well as articles on designing web sites for Web 2.0.

I would like to go back and review the site more thoroughly, but for now, I'm just adding to a list of potential Silverlight and Web 2.0 design resources. It will be interesting to see how much the site grows in the next 4-6 months, especially with respect to independent contractors and designers posting portfolios. As technologies like Silverlight and flash (UI portion of Web 2.0) start to infiltrate the enterprise web application space, the need for hiring or contracting a designer will become a reality.  

Tuesday, October 02, 2007 4:43:32 PM UTC  #    Comments [0] - Trackback
Review For Future Projects
 Sunday, September 30, 2007

On Thursday, I attended a DevCares event on WCF. We are using WCF in allot of different places on current project and I was hoping to learn some new information on how to make the most out of WCF. While I did learn some new things, I did leave feeling a little disappointed, and felt I could have gotten the same things from a Webcast and saved the 2 hour round trip (more on this later).

The event was held at Inacom, in one of their classrooms, and the free snacks and soda, was defiantly one of the hightlights. Even though we were in a technology classroom, complete with 1 workstation per user, they were not setup for us to try out any of the code and examples that were being presented. I downloaded power shell and was playing around with that during that portion of the presentation. I was tempted to pull out my laptop so I could follow along, but would have felt a little out of place. The presentation itself was a mix of power point slides and demos, which didn't always work. There were some nice gifts given away at the end, which consisted of some books a copy of Expression Studio, and a Copy of Office 2007 (professional I think). I wasn't too disappointed that I didn't win, as I do have a MSDN subscription and access to all of the software given away, but for some reason, it's always nice to win.

The presenter reminded me of one of my many college professors, and read pretty much verbatim from a prepared presentation. It would have been nice if the notes he was using were made available to us, it would have saved me some typing. Perhaps they are available online, I have not looked to closely. The demos and presentation were given off a laptop running a virtualizes windows Vista, for IIS 7 I am assuming. Given the go live license of Windows Server 2008 Beta 3 and RC0, I would have preferred to see one of those used instead (ok, so RC0 was released 2 days before the presentation). However, I do not think the presenter would have been able to setup anything that wasn't prepared for him ahead of time.

The first couple of demos were pretty straight forward and actually worked. These covered the use of the configuration tool, and test harness in VS 2008. The configuration tool included in VS 2008 would have saved me a lot of time in managing my config files this past summer. Also, VS 2008 includes a new test harness tool, which creates a very simple WinForms application based on the meta data retrieved from the WCF service, which can be used for quick testing. You need to have .Net 3.0 as the Target Framework, not .Net 2.0, which if you are upgrading from VS 2005, is probably the default. Once you have targeted .Net 3.0, a new Debug Tag under project properties will be available, and by default, under startup options, the following command will specified: /client:"WcfTestClient.exe"

I won't be giving up my unit tests anytime soon, but the test harness application still has it's place. We then moved into logging and tracing using the Microsoft Service Trace Viewer, a tool I sought out well before the class, and has saved me countless hours, so it was good to see if covered in the class. The first "half" of the class wrapped up with performance counters and monitoring through WMI and PowerShell (using WMI). PowerShell is something I have read allot about, but not had the time or immediate need to play around with. That has now changed, with all of the WMI support for WCF, PowerShell is the natural choice for querying our WCF applications. Couple that with the PowerShell extension for PolyMonand we'll have ourselves a nice little monitoring application.  

After a quick break to restock on free soda and snacks, we moved into the 2nd half of the class, and this is were things started to go downhill, pretty much because none of the demos worked, and what I feel were some omissions on the topic of deployment. Topics covered in the 2nd half included custom channels, custom bindings, load balancing and deployment. However, none of the demos worked, so it was as if we were just reading from a book, which probably would have provided more detail then what we were getting. On the topic of deployment, we covered IIS and WAS, however, there was no mention of the fact that WAS is only part of IIS 7, and nothing about custom hosting in case you happen to be running WCF were IIS 7 is not available. The only reason given for using WAS was that you could use other bindings besides HTTP, but not why those other bindings might be desirable (such as the huge performance gain when using tcp and binary encoding, assuming WCF at both endpoints).

All in all, I think in the future, I will save myself the 2 hour round trip, and try to find some WebCasts, or Channel9 videos on the topic. The exception to this, would be if I knew the presenter was going to be good, based on past experience, a recommendation, or at least if they had some real world experience. I guess I can't complain, the event was free, and there were free snacks.

Sunday, September 30, 2007 9:24:00 PM UTC  #    Comments [0] - Trackback
Programming

Yesterday I rebuilt a domain controller, and that night, I felt like rebuilding my computer from the OS up. I've been having allot of problems with Windows hanging at the logon screen, the display going out on the monitor, etc, and I had had, just enough, so last night I backed up a few things, threw in the WinXP SP2 disk and started fresh.

Issues that forced the reformat

  • Too much clutter. After 18 or so months, there is just too much clutter on my machine. Too many utilities not used anymore. I'm almost to the point of using VM's for most stuff. I will probably look to that with my next desktop purchase, which will hopefully take place next year.
  • Video Card Driver Issues: I hadn't updated by video card drivers in quite some time. The first update I applied about 1 month ago, and it messed up the resolution on my 2nd monitor. It was showing 1280x1024 instead of 1440x980. About 1-2 weeks ago, NVidia came out with Beta drivers for all the new games coming out. Hoping to fix my screen resolution issues, I installed them. About that same time I installed Kaspersky anti-virus, and between the two of them, started having various problems, which I blame mostly on Norton not uninstalling properly.
  • Attempted to remove Norton in favor of Kaspersky. (See Above)

Backup

  • I keep all important data on 2nd hard drive, so that when I do reformat, I don't have to do much.
  • IE Favorites, stored at c:\documents and settings\User\ were synced using folder share, now synced using groove.
  • Groove Account: Since I have the same account on multiple computers I didn't really need to back it up, but it was easier to do so. Just export your account from Groove.
  • SyncBack Profiles
  • IE/Outlook Feeds: C:\documents and settings\adams\Local Settings\Application Data\Microsoft\Feeds

Decisions

The only real decision was to go Vista (and if I went Vista, go 64 bit). I have been running Vista on my laptop for over 6 months now, so I do have a bit of experience using it, and could make a fair comparison between XP and Vista. In the end I decided to go with XP SP2. I don't have more then 4GB of Ram, nor do I have a DX10 video card, so I didn't feel as if Vista gave me anything more at this time. I plan on making the switch to Vista when I upgrade the desktop machine next year sometime. That will also be the point at which I switch over to 64 bit, as I intend to be running 4GB+ of ram.

Process

  1. Backup
  2. Insert XP SP2, and reboot. Press F8 to access boot menu and select DVD-Rom drive
  3. Wait for XP Setup to load
  4. Realize that the drive letting is messed up due to a HD on the ATA interface.
    1. Shutdown PC
    2. Unplug ATA HD
    3. Start back at Step 2
  5. Drives are now correct. Select C drive, delete partition and reformat.
  6. Windows Installs
    1. Time Zone
    2. Network Settings (Set to Static)
    3. Can't join the domain because no drivers for the NIC
  7. Windows is now installed
  8. Install latest NVidia drivers, verify resolution on 2nd monitor is correct (check)
  9. Install Kaspersky, verify startup problems are gone (check)
  10. Install latest sound card drivers
  11. Install latest chipset and device drivers for on board devices, like the NIC (check)
  12. So far, no problems
  13. Enable remote desktop, join domain, add domain user account to Users group
  14. Windows Updates, including .Net Framework 2.0,3.0, IE7, WM11, and all updates
  15. Start installing software

Synchronization

  • Getting grove set back up was pretty easy, although not as easy as I had hoped. While the account settings were backed up, which included the workspaces, the locations on where those workspaces should be located was not. It was pretty easy to choose the correct location, but once you get to 10+ work spaces it could be kind of a pain
  • Added IE Favorites to synchronization. Instead of looking for the favorites folder in explorer, in Groove, go to Options/Preferences/Synchronization and check the box for Internet Explorer Favorites
  • Ran into my first limitation with Groove. I wanted to try to sync my RSS feeds, but when I selected the feeds folder, I got a warning directing me to the Groove help topic on WorkSpace restrictions. Those restrictions basically said, the feeds folder (too many files and folders), and my MP3 folder (too many files, and my root mp3 folder would be > 1GB) are not Groove friendly. It looks like I may need to keep folder share around.

What's Left?

  • More software, such as Visual Studio 2008 Beta 2
  • Organize Start Menu
  • Install Steam and TF2, hopefully stuttering issue is gone
  • Install Printer and Scanner Drivers. Hopefully network printer sharing issues have been resolved
  • Backup strategy
  • Feed synchronization strategy or software application
Sunday, September 30, 2007 7:01:49 PM UTC  #    Comments [0] - Trackback
Technology
 Saturday, September 29, 2007

So I ask, what do you do for fun on the weekends? I seem to enjoy managing my home network. This weekend, it was fixing active directory, which meant, removing my primary DC and replacing it.

I had been having problems for quite some time, but had not had the chance to setup a new DC to take over the FSMO roles. Well, with the addition of my new DL 380 server, I finally decided it was time to fix all those annoying AD problems. I started out by create a new DC (02) as a VM on my primary desktop computer. Since I'm running 3GB or RAM in it now, I have enough to spare to run a DC to manage all of 5 computers at my house (I know, overkill).

After I got the new domain controller (02) up and running, I let it sit for a week, mainly because I had other things to take care of. It also made sure that some of the AD replicated over. Since this is my home network, and if I completely trash it, I'm not out of a job, I'm taking a fair number of shortcuts (which probably led to my primary DC experience problems in the first place), so I would not use my steps below as is in a production environment.

I knew I needed to transfer the FSMO roles from the old DC (01) to the new DC (02), and did so by following this guide. I also set the new DC (02) to handle the Global Catalog using this guide. I rebooted the machine between each step, and checked the event log for any errors. I finally got it down to where there were no errors on startup, and everything seems to have been replicated to the new dc. So it was now time to kill off the old DC (01), and make a new one (still 01). I followed this Technet article on how to demote a domain controller. DCPromo failed the first time on the NETLOGON step, but the 2nd time it was a success. I shut down the VM, deleted the old vmdk, and copied the vmdk from my base image to the folder for the DC (01).

DC01 booted up, as expected, so I configured it for Sysprep rebooted, and went thru the setup wizard. Did a quick windows update, installed DNS, and I was ready for some DCPromo Action. Not much to say, the DCPromo went smooth, changed the FSMO roles and GC back to DC01, rebooted, and everything was looking good.

There was one last issue, and that was with DNS. I was getting a warning under event id 4515. I installed the Win2k3 support tools and used ADSIEdit.msc per these instructions to fix it. I deleted the extra zone from the domain (option 2) and the "system" (option 3), leaving just the zone in the forest (option 1). I restarted the DNS service on both DC's, and no longer got the errors.

Saturday, September 29, 2007 6:21:28 PM UTC  #    Comments [0] - Trackback
Technology
Archive
<October 2007>
SunMonTueWedThuFriSat
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2009
Adam Salvo
Sign In
Statistics
Total Posts: 176
This Year: 0
This Month: 0
This Week: 0
Comments: 10
Themes
All Content © 2009, Adam Salvo
DasBlog theme 'Business' created by Christoph De Baene (delarou)