Skip to main content

Posts

Moving to the cloud - part 1

I cannot with words describe the hype around the cloud today, and of course I had to join the croud. I have transferred all my applications, files and services to the cloud. I thought I would share some of the experiences and difficulties I have hit during my jourey. These are the steps I have performed in order to complete my move to the cloud: Most of my files are safely stored with  Dropbox . E-mail accounts for stodell.se  were moved from service provider to  Google Apps . The Cornball was moved from service provider to  Windows Azure och SQL Azure . This blog was moved from Wordpress at a service provider to  Google's Blogger . Even though  Loopia has been a great service provider during many years I have now been able to cancel all my services except the domain hosting with them. The replacement being free services and the Azure capacity that is included in the MSDN subscription.

Programming AD with C#.NET – part 4

Our transition to the  System.DirectoryServices.Protocols  has in the whole gone very smooth, but there have been some issues with one environment that contains subdomains. Most things are working fine, but writing to a subdomain does not work in the same way as it did before. What is generally bad with the  System.DirectoryServices.Protocols is the documentation, which is practically non-existent. But most things can  be figured out anyway since most classes just are wrappers for the wldap32.dll, which in turn is way better documented. I would like to have as little bindings to a specific server as possible but still be able to access the domain. In the  LdapConnection  it is possible to set the identifier to null and use the executing computer as a starting point to find a domain controller. But sometimes I must know that I am using a Global Catalog, and with more and more RODC in the environment I sometimes must know that I am working against...

Programming AD with C#.NET – part 3

So far we have managed to exclude  System.DirectoryServices  because of our original issues, and  System.DirectoryServices.AccountManagement  because of performance issues. What is left for us now is  System.DirectoryServices.Protocols , and that is the namespace of our choice. Generally the  System.DirectoryServices.Protocols  is pretty similar to System.DirectoryServices , so it is not a big deal to rebuild our existing classes to a newer version. But there are always some small obsacles that need to be conquered. A very good guide to get started with these classes is written by Ethan Wilansky and published on MSDN, Introduction to System.DirectoryServices.Protocols . An small issue is that you always have to know if an attribute exists before you try to remove it. The same thing applies when an attribute is saved, you must know if it is a new attribute to be created or an existing attribute that should be updated. If an incorrect action is taken...

Programming AD with C#.NET – part 2

To work around the memory leaking issues in the .NET classes is in theory quite simple, do not use those classes. That is the starting point we had. Instead what we want to do is, by minimizing the affection on all our projects, rebuild our AD classes to use a beter way to communicate with the Active Directory. In .NET 2.0 the  System.DirectoryServices.Protocols  was introduced, which is a collection of general classes to communicate with practically any directory over LDAP. Unlike  System.DirectoryServices  which builds on  ADSI , the  System.DirectoryServices.Protocols  builds on the newer and better wldap32.dll. Heres an overview of the different namespaces and what teqniques they rely on, taken from  Introduction to System.DirectoryServices.Protocols . In .NET 3.5 yet another namespace arrived, namely  System.DirectoryServices.AccountManagement . This is excactly as it sounds a set of classes for account management. In theory thi...

Programming AD with C#.NET – part 1

We have a pretty old class library to communicate with Active Directory, shich is built on  System.DirectoryServices . It has worked very well during all these years, but since the size of the systems and the number of users have increased we have begun to see some performance related issues. The environment that is least stable at the moment consists of a root domain and a subdomain. The problem is the following error that sometimes occur on a search in the subdomain: System.DirectoryServices.DirectoryServicesCOMException (0x8007202B): A referral was returned from the server. This is not an unusual issue, but we have taken some steps for these issues not to occur. What is also interesting is that they seem to occur at random. Once the problem occured once the subdomain is unreachable for the current application until the application or application pool is restarted. Part of the problem is some poor memory management in  SearchResultCollection , which never disposes of...

Clients cannot connect to Exchange

I ran into a problem this week that caused a lot of headaches. In an existing Exchange environment everything seems to be working just fine for existing users. The problems occur when you try to configure an account on a new client. This scenario did not apply to all the mailboxes in the organization. These are some of the messages that were presented during different stages in the configuration: Outlook cannot log on. Verify you are connected to the network and are using the proper server and mailbox name. The connection to Microsoft Exchange is unavailable. Outlook must be online or connected to complete this action. The name cannot be resolved. The connection to Microsoft Exchange is unavailable. Outlook must be online or connected to complete this action. The action cannot be completed. The connection to Microsoft Exchange is unavailable. Outlook must be online or connected to complete this action. Your server or mailbox names cannot be resolved. The environment is a pur...

Internet Explorer 9 beta

Microsoft have released a beta version of Internet Explorer 9 and you cal tell that this is a true competitor in the browser war. For several reasons I have been running Google Chrome for a while but I always get curious when Microsoft makes a new release. Among other things, IE 9 comes with HTML 5 support and an well thought through integration with Windows 7. Apart from that the browser is faster, more secure and the user interface is redisigned to give more focus to the web sites. I have not tested it enough to say if they have succeeded, but as always I think highly of Microsoft. Read mor and download the beta version on  http://www.beautyoftheweb.com/ .