Website Update
The logo still needs a bit of tweaking though...
One of the other motivators besides the software upgrades, and the fact with me finishing Assassins Creed (which has left a void) was the old site (or theme, not sure) did not render correctly at all in IE 8! So this new one renders very well in IE 8 and FF.
Let me know if you like the new look more or less! If Google can get so much attention for just changing their favicon, maybe I could get some too... LOL
The Zen of Hosting: Part 1 - Who, What, Where, Why, and How
So I haven't posted for way too long due to a massive new initiative which I have been involved in, namely setting up a hosting solution provider called VirtualBox. This has been a very enlightening experience in terms of many new skills which I have learnt and a much deeper understanding of the products I worked with. So as a personal outcome from that investment I have written a series on what I have learnt.
This series is kinda different from my normal blog posts, for a number of reasons. Firstly this is one of the few times I have written the posts out long before posting them (normally I post as I think). This has given me the chance to re-read them and change them so hopefully the quality of this is higher (as a side I used Microsoft OneNote to write this). The length of each post in this series is also MUCH longer than my normal (average of 450 words per post) and lastly this is one of the few times I actually blog about what I doing at work and mention some of the exact products, customers and technologies I am involved with. The reason for this is not because normally I am not proud of what I do or who I do it with, but because I like to keep things separate, but this time I am so excited (kid on xmas eve type) that I really can't not share what has been accomplished by the small team who I feel privileged to work with on this.
Firstly what is a hosting solution provider? Well traditionally when you have wanted an application, like Microsoft Exchange you would go out buy a server, buy the licenses, get an IT Pro in to do the install and configuration. Well a hosting solution provider (HSP) changes the entire game by removing the buying from the traditional way. So you want Microsoft Exchange and you have it, instantly!
Why would anyone go this route? Well there is a couple of benefits for anyone such as turn around time of minutes from needing it to having it ready, getting proven systems in place from day one or having a guide on how your environment is setup which means as you bring on staff you just give them the guide and in a few days of reading and asking questions (and lots of googling) they have a wealth of understanding of the environment from the package (better yet if you can afford a few lab machines and run Hyper-V or Virtual Server they could even do the deployment of the environment to really understand it). But if you are a point haired boss type there is one very important business factor... MONEY.
So for the SME market the significant cost benefits come from them as paying for only what you consume. Licensing for Exchange for instance lets you purchase mail boxes with no support for calendars or tasks (i.e. Just mail) if that's all you need for just a few dollars per month. The HSP also will invest far more in hardware and staff thus providing faster, bigger, better (insert your favourite positive adjective here) that what the SME company could get themselves.
For the enterprise customer an HSP can be a very different route in that it allows an IT dept to move away from the traditional model and allows them to set themselves up as an HSP for the rest of the business. This means that they can lower cost of licensing, properly manage budgets between them and other departments, react quicker to business needs, and lastly once they have moved through the life cycle of setting this could actually allow them to start to offer the services outside the business allowing them to stop being a cost centre and start to become a revenue centre.
That's enough from me sounding like a business expert, so what can you expect in the series coming up? Well we will next tackle the overviews of the system, and then start to dive into some of the cooler technologies.
MSCRM Workflow Stopping, IFD cannot login, Async Service Crashing
Anyway on to the my new favorite issue of MSCRM 4.0, the async service crashing. Should it crash it takes down lots of features, to name some big ones:
- Imports
- Data Duplication
- Workflow
- Logging into a IFD deployment via the forms login
MSCRM 4.0 Error: Invalid Action
Then suddenly someone mentions an issue on MOSS where they can't edit a document... I wonder if it's related so I log on to the SQL box and check the disk space and (DUM DUM DUM!!) there is no space left on the disk drive for the databases. A quick clean of the transaction logs and the system is back up and running great.
Making ASP.NET pages look like MSCRM
Microsoft CRM supports many customizations, some of them are simple (adding a field) while others (also simple to do) actually allow you to embed other web pages view IFrames or add new buttons to the tool bar or the links on the left hand side of the window. This is great as part of the ability to link pages in is that CRM automatically passes various parameters to the web page that is being referenced, including the Guid and type of object. This means if you build a web page your web page gets context information for free (no weird JavaScript to navigate to it).
The problem seen at many customers is that these pages look nothing like CRM. This would make sense if you are embedding something like Live Maps, but if you are building the pages yourself why not make them look like CRM. This improves the user experience significantly and really isn't hard to do. In fact Microsoft has shipped a sample in the SDK for you. The problem is this is a HTML page and when converting to ASP.NET you will hit a few problems. However it is a simple 9 quick steps to get it right. So let's get into how to make your ASP.NET page look like Microsoft CRM.
- Once you have loaded your project (I am assuming you are using a new asp.net page which has had nothing done to it), navigate to where you have extracted the CRM SDK, and under it you will find a style sheet you will need. It can be found in: CRM SDK\sdk samples\stylesheet\template.css. Add this to your project.
- Next drag the CSS file from the solution explorer onto the default.aspx (I am assuming that Visual Studio is in design view and not source view). If you get this right the background will go that lovely light blue.
- Next open the sample html page (CRM SDK\sdk samples\stylesheet\sample.htm) in your favorite text editor and copy the content from opening body tag to closing body tag. Now switch VS to source mode and replace the asp.net pages content from opening body tag to closing body tag with the copied source.
- When you try to switch back to design view you will get 11 errors. Thankfully it is easy to fix those. li>
- The first fix is to add the runat attribute to the form tab and move it up two lines so it appears above the table tag. So it looks like the image here.
- Next move line 245 to after the closing table tab on the following line so it looks like the image here.
- Now remove line 15 (should just have </td> in it).
- You should be able to get back to design view! But you will be greeted by something not very CRM like still
- Lastly switch back to source and go to line 3 (should start with: <!DOCTYPE) and remove it. This line controls if Internet Explorer works in standards compliant mode or quirks mode, which is a non-standard rendering method. As CRM works solely on IE on Windows, there was no need for compliancy and thus the designers didn't include this and used non-compliant tricks to improve the UI, like tables expanding to but not exceeding 100% of screen height and the gradient effects. <
Undocumented MSCRM 4.0 Requirement
I suspect you can work around this by creating an unattended installation (see the implementation guide for creating the XML files for that), but I'm actually lucky enough to have an empty second drive I can change the drive letter to C (using disk manager).
Add to this that nothing actually appears on C: once I fixed the issue (assuming it is checking for something, and that is failing and thus the issue). So all that I have left to do is:
AARRRRRGGGHHHHHHH
MSCRM 4.0 IFD Manager - Stupid Tip
It clearly states that it should be extracted to a specific folder, namely drive:\Program Files\Microsoft Dynamics CRM\Tools (see point 2). Once in there is works like a dream.
Workflow doesn't work, Imports never happen, emails don't flow and Outlook clients cannot connect - Reloaded
In my previous post on Workflow doesn't work, Imports never happen, emails don't flow and Outlook clients cannot connect I went through the fix by changing SQL. I never liked that fix because it breaks rule one of MSCRM, never edit the database directly. It also has the high chance of screwing up your deployment (quote in the wrong place, or highlight skills lacking in SQL), so I finally found an offically supported tool which does the exact same thing: The IFD tool
What is great about the release version of the tool is it allows you to change those settings in a On Premise scenario only (the bottom set of items), so you don't need to suddenly switch to IFD with the tool to fix the issue. So definitely if you are having a problem, rather use the tool than the SQL statement.Request IP Address has different address family from network address.
Well what is happening is that MSCRM 4.0 doesn't work with IPv6 (as pointed out at http://support.microsoft.com/kb/950100), but what is happening is that the names are resolving internally to IPv6 addresses. The easy way to test is ping the server name and localhost for instance, if you get an IPv6 ip address then welcome to the black parade.
The fix for this is simple, open your hosts files (<system drive>:\windows\system32\drivers\etc\hosts) and add a line for your server name there with an IPv4 address. Save and ping again to make sure it is working. Once it is, do an IISReset and it will be working!