DigiOz Programming Blog
From time to time you may receive this error for one of the following reasons:
1. You need to add CRM URL to your Trusted Sites:
Go to "Tools > Internet Options > Security Tab"Select "Trusted Sites" icon then click on "Sites" button and make sure that the CRM URL exists in that list. If not, add it to that list.
2. IIS does not authenticate you as the user that you think it should be authenticating you as.
This one can happen if for example one of your co-workers uses your machine and tries to access the CRM entering their domain login information, then later on their access to CRM is revoked, yet Internet Explorer has already cached their credentials and is trying to use it when you are logged in. The problem is that IIS does not show what Active Directory User it is trying to authenticate you as if you have the option checked to automatically verify your credentials on each visit. The quickest way to fix this is to:
- Do everything in item 1 above.
- With "Trusted Sites" icon selected, click on "Custom Level" button.
- Scroll all the way down to the "User Authentication" section, then check "Prompt for user name and password", clicking on OK.
- Click "OK" again to save settings and exit.
- Close Internet Explorer and Re-open, clearing all cache.
Now when you visit the CRM URL, you are prompted for your domain login criteria, which should resolve any conflicts.
3. The Active Directory domain user you are logged in as does not have a CRM Account created for it.
Simply log in as the CRM Administrator, go under "Settings > Administration > User" and add the user to CRM.
Pete Soheil
DigiOz Multimedia
www.digioz.com
Feb 19 2010 12:05
A few days ago I was challenged with the task of retrieving a Microsoft Dynamics CRM 4.0 Plugin DLL and it's Source Code from the CRM Database. Apparently the contractor that created the Plugin DLL in question forgot to check in the Source Code into Source Control, and after the contractor had left the IT people reformatted the PC's Hard Drive and gave it to another user (so there was no way to get the source code any more). To make it worse, since the Plugin DLL was deployed to Database, there was no actual physical DLL file anywhere to be found on the Server.
Here is how I managed to get not only the DLL in question back, but also its source code:
1. Read content of DLL from PluginAssemblyBase table, “content” column which was stored in Base64 Format: The way Microsoft CRM 4.0 Plugin Deployment to Database works is to read the Binary content of the Plugin DLL and converts it to Base64 String, storing it in the PluginAssemblyBase Database Table, in the "content" column. So one could simply copy the Base64 String from that column using Microsoft SQL Management or a standard Database record read.
2. Converted the Base64 DLL content to Binary using a converter: There are many ways to do this, but the easiest way is to use an online converter like the one
HERE to convert the Base64 String to Binary format and save it to file. Make sure to name the resulting DLL file the same as the original DLL was called (you can determine this by reading the Name column of the PluginAssemblyBase table for the record in question).
3. Saved the result of this conversion to a file called NameOfYourDLL.dll: The converter from part 2 allows you to save the resulting binary output to file.
4. Decompiled the resulting dll using a .NET Decompiler: I used
Redgate's .NET Reflector to decompile the resulting DLL and get the source code.
5. Obtained the source code and created a new Project in Visual Studio: You just have to expand each class and copy and past each class file to a new physical file in VS.
I hope this information comes in handy to someone else besides me.
Pete Soheil
DigiOz Multimedia
http://www.digioz.com/
Sep 16 2009 08:43
Microsoft has gone above and beyond to make sure that the Web Development and Programming Environment that its Developer base use is as flexible, robust and easy to use and troubleshoot as possible. That is exactly why having a Microsoft Certification goes a long way with Employers. Let’s face it, in these tough economic times we cannot afford to overlook anything that would give us an edge over the next guy who is trying to grab the same job as you.
That’s where certification training resources like uCertify come in. If you are like most of us, you probably don’t have $2000 to $3000 dollars to pay for a Microsoft Certification Training Class. For a few hundred dollars you can essentially accomplish the same thing and in a fraction of the time.
Being a web developer, I have been thinking about taking the “M70-315 for Web Applications with C# .NET”, and uCertify has a prep course on exactly that topic (along with a couple of hundred other certification preps which I am not going to go into detail for. Which is why I downloaded and tried out this Prep Kit to see how much I know already and what I need to brush up on for the exam.
The thing that I loved about the Prep Application was how easy to use and common sense the interface was. Let’s face it, none of us would want to learn a whole new complicated application just to prepare for certification, which I am willing to bet is exactly what the uCertify people had in mind when they created this Prep Application. The Application is divided into two main sections: “Study and Learn” and “Practice Test”.
The “Study and Learn” section is a simple flash card type interface with a list of highlighted and important topics presented to the user. While going through them, it helped me remember a lot of the detailed troubleshooting information that I had used at some point in the past but had forgotten about since. It makes for a great review of existing knowledge for programmers. What it does not do however is to teach someone how to program from scratch! And no one should really expect that from a Prep Course, since the assumption is that you have been programming for a while now and you are trying to get ready for the exam.
The “Practice Test” Section of it is a set of multiple choice tests that target specific test related topics you should know about before the exam. What I liked about this section the most was the fact that it has a Learning mode, where it will let you take a test and once you have put in your answer it will explain to you what you got wrong. The most impressive part of the Learn Mode was the amount of detailed explanation that is given on questions that you get wrong. It basically walks you through the whole thought process of coming up with the right answer, not just give you the answer, and that has helped me come up with a troubleshooting strategy that can be applied to any website related issue, not just the ones in the practice tests.
Overall I find this Prep Course to be a truly impressive Package and would recommend it to anyone preparing to take a Certification Exam. And for reading this blog, I am happy to share a discount coupon code with you. The discount code which entitles you to a 10% discount is "UPG033". You can download the Prep Kit from
http://www.ucertify.com/download/70-315.htmlHappy Testing!
Pete Soheil
DigiOz Multimedia
http://www.digioz.com/
Aug 07 2009 15:54
This is probably one of the most comonly asked questions for developers who just start off working with SOAP, Webservices, or cross platform communication through XML. The easiest way to convert an object to string XML and back is to use two functions similar to the ones bellow:

Here is a sample usage of the above two functions:

I hope it comes in handy for someone. Just don't forget to add error handling to the usage code, in case your XML string is not complete or corrupt.
Pete Soheil
DigiOz Multimedia
http://www.digioz.com/
Aug 03 2009 12:15
SourceForge.net is by far the most popular Open Source Programming Site out on the web. They have a lot of great Project Management features on that site and all for FREE!
A question was asked from me by one of our Open Source Developers on how to remove a CVS or SVN repository from SourceForge, so this is my attempt to both answer that question and write something useful down for the rest of the SourceForge Developers out there with the same problem.
Step 1: Download Putty.exe from this link:
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exeStep 2: Run Putty, and enter the following information under each specified tab:
Session Tab: For "Host Name", type "shell.sourceforge.net" and check the "SSH" radio button.
Connection > Data: Under "Auto-login username" textbox enter "user,projectname", where "user" is your SourceForge.net registered username and "projectname" is the Unix Project name (without space) that SourceForge gave you when they approved your project.
Connection > SSH: Enter "create" in the "Remote command" textbox.
Step 3: Once you have all of that in place, click on the "Open" button to connect to SourceForge.
Step 4: You will be prompted to enter your password. Enter it to continue.
Step 5: Once on the Shell Prompt, enter "adminrepo --checkout cvs" to cache a copy of your repository (clone it). This may take a few minutes to do depending on the size of your repository.
Step 6: Remove each repository you want to delete using the following command:
rm -rf /cvsroot/projectname/RepositoryToRemove
Here "RepositoryToRemove" is the name of the CVS or SVN repository you wish to delete. If you want to delete ALL repositories, you can replace "RepositoryToRemove" with a "*".
Note: If you need to create any new repositories at this point, you could use the "cvs -d /cvsroot/projectname/RepositoryToCreate command to create it.
Step 7: Type "adminrepo --save" to save your changes and get rid of the cached version of the repositories you were working on.
That's it! I hope you found this blog entry useful. I know of at least one person on my Open Source Team that will!
Pete Soheil
DigiOz Multimedia
http://www.digioz.com
Jul 16 2009 23:01