Rexiology::Work

Microsoft, Information Technologies...

Community

News

  • From Taiwan, living and working at Tokyo, Japan.




Recent Posts

Tags

Microsoft Sites

Other Sites

Blog pools

Bloggers

Archives

Site Info



Locations of visitors to this page




Logos & Chicklets


GeoURL


Rex's Certifications
Rex's Certifications


Creative Commons授權條款
本 著作 係採用
Creative Commons 授權條款



Tips of Using Windows 7 – Image Preview Pane and Folder Options

crosspost from http://blogs.msdn.com/rextang

Here I provide 2 small Windows 7 tips that bothered me days and decided to solve it. well, actually they are just setting problems.

First, in Windows 7, now the default option for Windows Explorer is to not show the folder list when you open or get into a folder, which is different with that in Vista. I’ve used to have the folder list in left pane so that I can clearly know where I am, therefore I decided to put it back. it’s on the Tools –> Folder Options menu.

image

Just check that “Show all folders” and “Automatically expand to current folder” and you got the using experience like when you were in Vista.

Second, which bothered me the most, is that I don’t have Image Preview in Windows Explorer. all I got are thumbnails.

image

After a search, found the problem via this forum post. Yes, I had tweaked settings in my windows explorer, and I DID CHECKED that “Always show icons, never thumbnails”!!

image  

Make sure you UNCHECK this option if you want preview of your image files!

That’s it, wish it help. :)

Technorati Tags: ,,,
Convert VS2010 Projects back to VS2008 ones…

Crosspost from http://blogs.msdn.com/rextang

Long time no blogs. been busy on works, also mostly twittering and plurking except blogging. time to write something.

Before going further, be caution that this is just personal-experience know-how writing, and use at your own risk.

Being testing Visual Studio 2010 beta 1, I am writing some projects under it, also using TFS 2010 beta 1 for source control. when you do this like me, you should experience same problems like me. that is, when you want to hand out your project to your team members, you’ll have to force your team to upgrade to VSTS 2010 beta 1, or you’ll have to manually convert all your vsts 2010 projects/solutions back to vsts2008 ones for exchangeability. when you have tens of projects that compose a solution, it will be tidy to manually create projects and reset the source relationships for vsts2008 again.

so here is the idea, using file-wide string-replacing to convert vsts2010 project/solution files back to vsts2008 ones. I’ve tried it on my own and proved worked. the pre-requisites are that, you only have class library projects, console projects as well as asp.net web projects.

so, here are the necessary replacing strings you need to go through. use editors that support file-wide string-replacement (like Notepad++) to do this. don’t replace those in vsts 2010 or vsts 2008 since you are mainly manipulate solution (.sln) and project (.csproj or .vbproj) files.

for all your project and source files, do the following (find first line and replace to second line):

TargetFrameworkMoniker = ".NETFramework,Version=v2.0"
TargetFramework = "3.5"

# Visual Studio 10
# Visual Studio 2008

Microsoft Visual Studio Solution File, Format Version 11.00
Microsoft Visual Studio Solution File, Format Version 10.00

<Project ToolsVersion="4.0"
<Project ToolsVersion="3.5"

<ProductVersion>10.0.20506</ProductVersion>
<ProductVersion>9.0.30729</ProductVersion>

\VisualStudio\v10.0\
\VisualStudio\v9.0\

<Import Project="$(MSBuildToolsPath)\Workflow.Targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Windows Workflow Foundation\v3.5\Workflow.Targets" />

This worked on my solutions, you can try to see if it fit to your cases.

 

FYI.

Install TFS 2008 SP1 with SQL Server 2008 SP1

crosspost from http://blogs.msdn.com/rextang

This just spent me couple hours to find out, that you won't be able to install TFS 2008 SP1 on SQL Server 2008 SP1 by just following the Installation Guide.

Even you've installed SQL Server 2008 and applied SP1, and followed Installation Guide to slipstream TFS 2008 Installation media with TFS SP1 bits, you'll still not able to install TFS, installer will keep telling you that your SQL Server is incompatible!

The solution, via bharry's blog, directed to this KB article, telling you that you have to modify the version check xml setting file in order to let the installer pass through the version check and install it.

Remember to read this before you install your own TFS 2008 SP1 on SQL Server 2008 SP1!!

the key modification points are (from the KB, for reference here):

5. Open the Hcpackage.xml file by using Notepad.

6. Find the following entry:

<WQL namespace="\\.\root\Microsoft\SqlServer\ComputerManagement10" query="SELECT * FROM sqlserviceadvancedproperty WHERE ServiceName='[%VSTF_SERVICENAME_MSSQL%]' AND PropertyName='VERSION' AND PropertyStrValue&gt;='10.00.1433' AND PropertyStrValue LIKE '10.00.%'" action="=" count="0" />

7. Replace the entry that you found in step 6 with the following entry:

<WQL namespace="\\.\root\Microsoft\SqlServer\ComputerManagement10" query="SELECT * FROM sqlserviceadvancedproperty WHERE ServiceName='[%VSTF_SERVICENAME_MSSQL%]' AND PropertyName='VERSION' AND PropertyStrValue&gt;='10.00.1433' AND PropertyStrValue LIKE '10.%'" action="=" count="0" />

8. Find the following entry:

<WQL namespace="\\.\root\Microsoft\SqlServer\ComputerManagement10" query="SELECT * FROM sqlserviceadvancedproperty WHERE ServiceName='[%VSTF_SERVICENAME_MSSQL%]' AND PropertyName='VERSION' AND PropertyStrValue&gt;='10.0.1433' AND PropertyStrValue LIKE '10.0.%'" action="=" count="0" />

9. Replace the entry that you found in step 8 with the following entry:

<WQL namespace="\\.\root\Microsoft\SqlServer\ComputerManagement10" query="SELECT * FROM sqlserviceadvancedproperty WHERE ServiceName='[%VSTF_SERVICENAME_MSSQL%]' AND PropertyName='VERSION' AND PropertyStrValue&gt;='10.0.1433' AND PropertyStrValue LIKE '10.%'" action="=" count="0" />

10. Find the following entry:

<MsiProductVersionCheck prodid="[%SQLServer2008%]" action="&lt;" version="10.1" />

11. Replace the entry that you found in step 10 with the following entry:

<MsiProductVersionCheck prodid="[%SQLServer2008%]" action="&lt;" version="10.2" />

12. Save the Hcpackage.xml file.

13. Run Setup.exe to install Visual Studio 2008 Team Foundation Server with SP1.

FYI.

CRM4.0: AutoUpdate Outlook CRM Client Patches

crosspost from http://blogs.msdn.com/rextang

so we are finally at the stage of service-in our CRM Project to customer. since we did use CRM Outlook Client, when there are official patch updates, we won't be able to manually install them to all the client. thanks to client auto-update features, we can just put patch files on server and let outlook crm client patch itself. When end-users start outlook, crm client will check if there are patches needs to be update, and if got any, it will prompt user to install it.

reference articles:

Dr. Strangelove Or: How I Learned To Stop Worrying and Love The AutoUpdate Tool

CRM Client AutoUpdate

will summarize steps here for my later reference.

1. Prepare a web folder to store all the patch exe files.

2. At all client computer, registry path [HKEY_LOCAL_MACHINE\Software\Microsoft\MSCRMClient] with String value key [AutoUpdateDownloadUrl] that point to the patch download http url (be sure to end with back-slash "/") is needed. using Group Policy or login script to set this will be a good idea.

3. Extract patch exe file with "/x" option and get the [PatchID] GUID from config.xml file.

4. Copy the patch exe file to the web folder for client to install.

5. Prepare AutoUpdate Config xml file of contents like this (save the file and copy to CRM Server):

<?xml version="1.0"?>
<ClientPatches>
<Create>
    <ClientPatchInfo>
        <PatchId>[PatchId got from config.xml file]</PatchId>
        <Title>[Title of the patch]</Title>
        <Description>[Description of the patch]</Description>
        <IsMandatory>true</IsMandatory>
        <IsEnabled>true</IsEnabled>
        <ClientType>OutlookDesktop,OutlookLaptop</ClientType>
        <LinkId>[patch exe file name, http path is not needed since client got it setup at step 2]</LinkId>
    </ClientPatchInfo>
</Create>
</ClientPatches>

6. At CRM Server, open a cmd window, go to [c:\Program Files\Microsoft Dynamics CRM\Tools] folder, and run [microsoft.crm.tools.clientpatchconfigurator.exe AutoUpdateConfig.xml] to register the patch.

7. Go to client PC with CRM Outlook Client installed and open Outlook to update the client.

that's it.

 

FYI.

CRM 4.0, Data Import and TCP Socket Outage...

crosspost from http://blogs.msdn.com/rextang

When doing bulk data import on CRM 4.0 using self-made application that utilizes CRM SDK to communicate with web server, if the application is running parallel that simultaneously accessing the server, sometimes you may get this kind of error and the import will fail:

"Only one usage of each socket address (protocol/network address/port) is normally permitted (typically under load)."

or error message in Japanese:

"リモート サーバーに接続できません。 通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。 10.1.1.1:80"

when encounter this, mostly it's likely that the client side is running out the available TCP connection sockets due to that Windows had the default free available socket amount set to 5000 and fast parallel web requests and 240 seconds default TCP TIME_WAIT settings that just occupied all the available sockets in a short interval of time. refer to this and this for detals.

the solution is to increase the available TCP sockets and decrease the TCP TIME_WAIT interval, at client application machine, via the registry settings.

Increase TCP sockets: add or modify the DWORD key to 65534 (the default is 5000)

HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort

Decrease the TCP TIME_WAIT time: add or modify the DWORD key to 30 (default is 240 in seconds)

HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\TCPTimedWaitDelay

remember to restart the client machine to let the settings take effect.

by setting this successfully avoid the error and the data import was done smoothly in a fast powerful production CRM server-farm during our testing. from here we are considering to increase the importing-application parallel rank in order to minimize the initial bulk import time for next step...

the other thing to mention is that, actually the same error also occurred when calling CRM services in Plugins. for this, the CRM Web Server are not only acts as the server, but also a client at consuming itself, and thus for the CRM Web Server that has plugins using CRM web services, it maybe a good idea to also do this workaround to prevent socket outage.

FYI.

Self-Signed Certificate and Outlook VSTO Add-in Silent Installation

crosspost from http://blogs.msdn.com/rextang

As in my CRM 4.0 design and deployment project we are reaching the end part of testing deployment phase. the Outlook Add-in I made using VSTO 3.0 with ClickOnce deployment will finally need to be deployed to client side and it's the time I am facing those digital signing stuffs as well as client machine silent installation without user interference. I'll just leave a summary here of steps to achieve this for later reference.

Major Steps:

1. Using a existing digital signing Certificate or creating a self-signed Certificate.

2. Signing the VSTO ClickOnce manifests with the Certificate.

3. Deploy / Import the Certificate to the client PCs.

4. Using command prompt to install VSTO package silently.

Details as follows:

1. Using a existing digital signing Certificate or creating a self-signed Certificate.

if you are obtaining certificates from existing CA, you may need to obtain the private/public key pairs in order to build the .pfx keypair file.

I am going to use the self-signed certificate to deploy the solution in testing phase. so I'll go the following steps.

I am referencing this post for most instructions: How to create your own code signing certificate and sign an ActiveX component in Windows. will dub a short instructions here for later reference.

a. Get OpenSSL.

b. Create Root CA Certificate.

        openssl genrsa -des3 -out ca.key 4096
        openssl req -new -x509 -days 365 -key ca.key -out ca.crt

c. Create Intermediate Server Certificate and signing with Root CA Certificate.

        openssl genrsa -des3 -out server.key 4096
        openssl req -new -key server.key -out server.csr
        openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt

d. Create .pfx key pair for VSTO ClickOnce manifests AuthentiCode signing.

        openssl pkcs12 -export -out exported.pfx -inkey server.key -in server.crt

e. Just in case, create the .snk public key file for later use.

        sn.exe -p exported.pfx exported.snk

f. You'll now have the following certificate files:

        ca.key: Root CA private key file.
        ca.crt:
Root CA public key file.
        server.key:
Server Certificate private key file.
        server.csr:
Server Certificate public key file.
        server.crt:
Server Certificate public key file signed with Root CA key files.
        exported.pfx:
the Serve Certificate key pair file for code signing in Visual Studio 2008.
        exported.snk: optional public key .snk file containing server certificate for later use.

g. All you need to later steps are:

        ca.crt: Root CA public key file.
        server.crt:
Server Certificate public key file signed with Root CA key files.
        exported.pfx:
the Serve Certificate key pair file for code signing in Visual Studio 2008.

2. Signing the VSTO ClickOnce manifests with the Certificate.

using the exported.pfx file to setup VSTO ClickOnce Manifests signing. you can also signing the assembly with this keypair to create Strong Named assembly but it's not necessary to make the silent install work.

3. Deploy / Import the Certificate to the client PCs.

Import those Certificates to every client PC either manually by:

a. Import ca.crt to client PC's Certificate Store, inside "Trusted Root Certificate Authorities".
b. Import server.crt to client PC's Certificate Store, inside "Intermediate Certification Authorities".
c. Import server.crt to client PC's Certificate Store, inside "Trusted Publishers".

or you may also using AD to deploy the Root CA to client PCs. refering to this TechNet article for steps.

4. Install VSTO 3.0 pre-requisites before installing VSTO package.

by referencing this thread of posts, in order to install the VSTO package silently, instead of using the Visual Studio published setup.exe file, need to use the VSTOInstaller.exe with /Silent switch. and by using VSTOInstaller.exe, it won't check the pre-requisites thus needs to install those first to every client PC.

a. .NET Framework 3.5 SP1

http://www.microsoft.com/downloads/details.aspx?familyid=ab99342f-5d1a-413d-8319-81da479ab0d7&displaylang=en

b. VSTO version 3.0 (x86)

http://www.microsoft.com/downloads/details.aspx?FamilyID=54eb3a5a-0e52-40f9-a2d1-eecd7a092dcb&displaylang=en

c. Office PIA 2007 package

when Visual Studio 2008 published office add-in package, there will be Office 2007 PIA installer at publish\Office2007PIARedist\o2007pia.msi for installation and deployment. locate the installer and install it.

4. Using command prompt to install VSTO package silently.

open a command prompt manually or using other auto-deployment ways with the following command to install the VSTO package, sliently without user interference:

c:\> "%commonprogramfiles%\microsoft shared\VSTO\9.0\VSTOInstaller.exe" /I "http://published.server/outlookaddin/OutlookAddin.vsto"/S

the command will return immediately thus you won't know if the installation is succeeded or not. by checking the "Add/Remove Programs" in Control Panel you can see if your VSTO Add-in was installed or not. if it was not installed, remove the /S silent switch and run the VSTOInstaller again to see what's wrong. if there is a warning dialog box appeared saying that you are going to install a component from an "unknown publisher", your client PC certificate import operations may get something wrong and you need to check or re-import them again. if everything was going well you should only run this command and will see the component installed via the control panel. no other user interference is needed.

5. VSTO ClickOnce AutoUpdate.

after .NET Framework 3.5 SP1 and VSTO 3.0, now the ClickOnce application have the ability to auto-update itself if new version is published to the server. thus for the first-time install, it's possible to use AD logon script to check and install the VSTO package silently and for later updates, just refresh the server-side file to the latest version and next time when end-user opens Outlook (or other office applications), it will check the latest version from server and install itself if necessary.

FYI.

When missing Visual Studio project template...

cross from http://blogs.msdn.com/rextang

One of my dev VM had missing all the project template while trying to new a project from selecting "New Project". had found this forum thread and by running "DevEnv /InstallVSTemplates" from elevated VS2008 Command prompt, all the template just came back without problems.

FYI.

Some Groove 2007 Tips...

crosspost from http://blogs.msdn.com/rextang

# Remove an account in a machine which cannot logged in due to password forgotten

Just tried to re-activate some of my old groove accounts in my other PCs and found that I forget the password set long time ago... (normally inside MS we had internal password policy that we need to change password every few months, this included MSIT managed Groove Server accounts.) As I am able to save my account file from other computers with the latest password set, I am not able to apply that account to my PCs which already got the same account installed. question is how to remove the account which the password is forgotten...

A KB (KB916375) addressed this problem. As a result, you have to delete all the Groove data on that computer and setup all the account again!! follow KB907854 for the instructions of using GrooveClean.exe to clean all the Groove data in a machine and re-setup the accounts you need.

 

# Re-Get / Transfer the Synchronizer role of a SharePoint File Sync tool

Been searching for a long time, that when you setup a Groove File Sync Tool and syncing files around multiple PCs, how do you transfer the role of Synchronizer around computers?

In this help http://office.microsoft.com/en-us/groove/HA102242471033.aspx it described the functionality of a SharePoint File Sync tool and how to use it. although it did explained how to change the sync mode between manual and auto, and the concept of synchronizer, it didn't tell us how to change synchronizer between computers. the answer is that when you want to change synchronizer between computers, you go to the menu in Edit -> Synchronize Now command to force a sync in current computer. if current computer is not in a synchronizer role, it will prompt you that it is going to request the synchronizer role, and once the current synchronizer approved it , the computer who request the role will get the role and become the new synchronizer. If the computer and account who is in the admin role of the workspace, it can also forcefully get the synchronizer role without notice the current synchronizer.

 

FYI.

Dynamically Loading Scripts Files on Dynamics CRM

crosspost from http://blogs.msdn.com/rextang

People who are working in customizing Dynamics CRM system should all sooner or later facing this problem: what can I do to have my common sharing Javascript library injected in an elegant way so that all the events in all my crmForm can use it without problems?

As now I am engaging in a Dynamics CRM customization project and am building a common base framework for CRM developing of our vendors, I am also facing this problem. (also others though...)

In David Yack's book "CRM as a Rapid Development Platform", he is using an OO Javascript writing of base classes to be used in crmForm, and to overcome the offline CRM client problem, paste all the base class code in every entities' form's OnLoad event. the idea of writing Javascript code in VS2008 and utilizing intellisence support are pretty good ideas also.

Michael Höhne from Stunnware.com is using another approach to dynamically load javascript files of common sharing client code to the crmForm. Refer to his excellent articles here and here.  Although it's modifying the form.css file to add extended logics, which becomes an unsupported custimization. he minimized the impacts of the side effects so that it can be easily recovered after a hotfix patch or version up of CRM system. notice that this approach may not work in CRM offline environment and may need further works to deploy your javascript codes into client machines.

if your solution will only target in online environment, like mine this time, I think Michael's solution will be a good one to implement. base on what you need, choose the proper solution to make your solution work.

FYI.

Technorati Tags: ,,,

Error 0x80070057 when importing Hyper-V VM around servers.

crosspost from http://blogs.msdn.com/rextang

It's already bothering me many times when I am export my Hyper-V VM (with important snapshots) and trying to import to another machine and hit this error without further information:

Failed to import the virtual machine from import directory 'C:\vpc\somevpc1\'. Error: One or more arguments are invalid(0x80070057)

been searching on the internet and not found very useful information until today. this saving me lots of time to locate the problems via copying super large VM (>50GB) around my networks.

found the post from John Rennie in this technet forum: http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/5b731f1a-f495-4d88-a875-0eea77ecd6b4

(for my reference, leave a copy of info here.)

In http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/85dc7d36-491f-4b02-88ac-63c1ed0d94db I described a problem when exporting from a Hyper-V server and trying to import into a different Hyper-V server in a different domain. The import failed and the event log contained:

Failed to import the virtual machine from import directory 'D:\HV\Test\Test4GB-3\'. Error: One or more arguments are invalid(0x80070057)

Well I've now identified the source of the problem. In the .exp file is:
<INSTANCE
  CLASSNAME="Msvm_VirtualSystemGlobalSettingData">
...
  <PROPERTY NAME="ScopeOfResidence" TYPE="string">
    <VALUE>
      e7668fbc-216e-4ed1-8ce3-3b932b42e22b
    </VALUE>
  </PROPERTY>
If I edit the .exp file and delete the <value>..</value> then the virtual machine imports with no errors.

you should find the master exp file under the exported VM under VirtualMachine folder. open the file and locate the Msvm_VirtualSystemGlobalSettingData instance, should be in the top of the file, locate the ScopeOfResidence property and just clear that GUID (leave the <value> tag there). import the modified VM again and you will success.

Thanks John for sharing the info, and FYI.

IE: Prevent confirming dialog box when using window.close() to close a main window

crosspost from http://blogs.msdn.com/rextang

Been busying on investigating Dynamics CRM 4 Web Application and Outlook VSTO Add-In development for the past weeks and not update blog much. It's time to do a post now.

Little but useful trick when toying with IE windows.

When there is only a parent IE window and you load some pages with javascript "window.close();" that trying to close the window, in IE there will be a confirming dialog box asking if one really want to close the IE window. This often causes problems if you want to host your IE in a winform, and here are some simple and quick workaround to overcome this.

   1: <HTML>
   2: <HEAD>
   3: <TITLE>Close window without prompt</TITLE>
   4: <SCRIPT LANGUAGE="JavaScript">
   5: <!--
   6: function realClose()
   7: {
   8:     var win=window.open("","_top","","true");
   9:     win.opener=true;
  10:     win.close();
  11: }
  12: //-->
  13: </SCRIPT>
  14: </HEAD>
  15: <BODY>
  16: Close window without prompt
  17: <FORM><INPUT TYPE="button" VALUE="Close ME!" onClick="realClose()"></FORM>
  18: </BODY>
  19: </HTML>

The trick is to open an empty page in self window (the "_top"), and then close the opened window in javascript to fool IE that he is closing a child window. this worked without problems.

Further more, if you don't have ways to modify the page you are opening, thus not able to embed the realClose() function to the page, maybe in a WinForm that hosting a IE window and actually you don't know what page you are going to open, maybe this way would work.

   1: <HTML>
   2: <HEAD>
   3: <TITLE>Close window without prompt</TITLE>
   4: <SCRIPT LANGUAGE="JavaScript">
   5: <!--
   6: function realClose()
   7: {
   8:     var win=window.open("","_top","","true");
   9:     win.opener=true;
  10:     //win.close();
  11:     win.realclosefunc();
  12: }
  13: window.realclosefunc = window.close;
  14: window.close = realClose;
  15: //-->
  16: </SCRIPT>
  17: </HEAD>
  18: <BODY>
  19: Close window without prompt
  20: <FORM><INPUT TYPE="button" VALUE="Close ME!" onClick="javascript: window.close();"></FORM>
  21: </BODY>
  22: </HTML>
  23:  

in this way, when in WinForm, try to manipulate DOM of the hosting IE window, and try to insert the piece of code in the head part of page, then change the default window.close function to our self-made function to close the window. using this way won't need to do a string replacement of the downloaded html contents to replace window.close() to our close function. little bit tidy, but still doable...

For WinForm hosting pattern, using .net 2.0 WinForm WebBrowser control won't give you that magic WindowClosing event to prevent IE closing in your WinForm. There are articles introducing hooking DWebBrowserEvents2 interface to get this event working with WebBrowser control, but for no reason it just not working.

So I just tried to use COM Interop way to bridge the ActiveX IE control to .net by using aximp.exe command, and by doing this found that the WindowClosing event is working and able to detect the IE close before that confirming dialog box showed up, and then to cancel the IE close action inside the event and close my WinForm. this should be the easiest way to accomplish this task I think.

FYI.

Windows HPC Server 2008 RTMed!

crosspost from http://blogs.msdn.com/rextang

2008/09/22 marked the RTM day of Windows HPC Server 2008, ranked top 23 of Top 500 as the Microsoft server for cluster computing. based on previous CCS server we made lots of improvements on the management abilities, also others. been a pilot tester started from beta early this year, I’ve seen the improvement and stability of this product. by using this RTM bits I managed to construct a 2-node cluster in less in 1 hour using Hyper-V VMs without any problems. I have to say, good job, HPC team!

try it and experience the next stage of computing, and start considering how to use those energetic computing powers, as a developer!!

also take a watch of the exciting cool intro video. what can I say… I just love technologies!!! :)

Technorati Tags: ,,
CRM 4 Outlook Client Lost Connection Problem…

crosspost from http://blogs.msdn.com/rextang

Most of my testing CRM 4 environment were built upon Windows 2008 Server / IIS7 (both 32bit and 64bit) . The server and outlook client installation works fine without problems. started from this week I am making prototyping env. using Windows 2003 Server R2 with IIS6 and after done the installation, the Outlook client kept telling me “Lost Connection to CRM Server” popup messages in the notification area of Vista. the message said

“Unable to Connect. Lost Connection to Microsoft Dynamics CRM. Microsoft Dynamics CRM will restore the connection when possible. To stop retrying, right-click and select Sign Out”.

had a searching and found this thread about the solution. basically it seems that the outlook client agent just can not have access to CRM web server with proper permissions. by enabling CRM Website with anonymous acess right (via IIS management console). the annoying popup message disappeared. problem solved.

wondering if enabling annonymous access will affect the security of the CRM site, but since trying access from other computer using IE the form authentication poped out correctly, should be no problems doing settings in this way.

also wondering why in IIS7 there was no problems like this…

Technorati Tags: microsoft,dynamics,crm

Enable CRM 4 URL QueryString Parameter Passing…

crosspost from http://blogs.msdn.com/rextang

It seems worked while CRM 3.0 that one can pass custom variables via URL’s querystring and use it while form’s onload event. but it’s not worked in CRM 4 by default now. to be able to do this, you have to tune the registry.

Create a DWORD registry key named [DisableParameterFilter] under [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM], set the value to 1 , and the do a iisreset, this enable the url querystring parameter passing under CRM 4.

some related discussion here. but still wondering what will be affected by disabling this “ParameterFilter”, since it seems not documented in any documents I’ve seen…

Technorati Tags: microsoft,dynamics,crm

Create Multi-Tenancy Organizations in CRM 4.0

crosspost from http://blogs.msdn.com/rextang

After some basic checking of CRM 4.0 system, it’s now time to import some sample data and test further. As I am working in Japan, besides using the original English contents for testing, also would like to have the sample data to show to my colleagues as well as some Chinese data for self-testing. as I installed only one CRM 4 Server in my dev vm, should consider a way that can make those sample data working in the same time without install / restoring the database. so i think that should be the time for the new CRM 4.0 feature “Multi-Tenancy Support” to on stage.

Multi-Tenancy support means that 1 CRM 4.0 server can host multiple organizations at the same time, so that I can just create 3 organizations for each sample data (English, Japanese, Traditional Chinese).

Although the Implementation Guide did say that it had this new multi-tenancy feature, actually I didn’t see how to do it by reading through the whole documents. found that MSDN CRM Team blog had the post about how to do it, would also leave a note here.

The Administration Console way:

Use Deployment manager to create a new organization (All Programs -> Microsoft CRM -> Deployment Manager). You need to be a member of Deployment Administrators group to run this tool. The user who installed CRM is added as a member of this group automatically. Deployment manager will collect information such as name of the organization, currency settings, sql server etc and create a new organization.

refer to the team blog for SDK way of creating multi-tenancy organizations.

by the way, not all the CRM 4 SKUs support multi-tenancy, I installed Enterprise version and it’s ok. also, before install those multi-language sample data, install the related Language Packs first (also remember to download the Read Me for install steps). the CRM Implementation Guide also states the steps to install language packs.

Also notice that the sample data for each language all trying to create the same organization name “AdventureWorksCycle”, in order to seperate the different languages to different organizations, create the AD OUs and CRM Organizations with different names, also remember to change the sample data’s organization name to match the created OU name before importing to each database using Data Migration Manager.

FYI.

Technorati Tags: ,,
More Posts Next page »