How to find if assembly is 32-bit or 64-bit?

By running CorFlags.exe [assemblyname] it will output the information you need:

 

Platform PE 32BIT
Any CPU PE32 0
x86 PE32 1
64-bit PE32+ 0

 

Information got from this blog.

Advertisements

Consolidating Application Pools

I had a need to consolidate application pools for several MOSS 2007 sites I had created on my development machine. I had been so stupid that I just created a new application pool each time I created a site. Since Sharepoint Search crawls every site, a new work process (w3wp.exe) was created for each site – even though I didn’t use them. No need to say that this eats valuable memory in my VPC…

This was what I did:

  • Make sure all sites use the same application pool acount in Central Administation > Operations > Service Accounts. I use Network Service for simplicity
  • Make sure authentication providers use NTLM in Central Administration > Application Management > Authentication Providers
  • Do a IISRESET and test that all sites works OK. If something doesn’t work now, it’s easy to go back if you remembered to make a note of previous settings for the first two steps
  • Go to IIS Manager
  • Create a new Application Pool:
    • Call it something reasonable, like “Sharepoint Shared App Pool”
    • Set Identity to the same identity as you used in the first step
  • Configure Application Pool for each web site under Web Sites that you want to colsolidate
    • Right click root of web site and select Properties
    • Under Home Directory, change Application pool to the newly created application pool
    • Expand the _layouts-folder under root and change the application pool for both images and inc
  • Do a IISRESET and test that all sites works OK
  • Delete the application pools you no longer use (when testet that everything works ok!)

View more rows in Edit in Data Sheet

I received an requirement from my boss to display more than the default 6 rows in the Edit in Datasheet view of data lists. I hate this beast (ie. datasheet) because it is really unpredictable (see my previous posting).

After messing around I found the simplest solution was to alter the OOB core.js:

Changed:
cGCMinimumHeight=200;

to:
cGCMinimumHeight=600;

This offcourse makes the change global for all Datasheets and very exposed to future updates from Microsoft. So add it to your list of things to check after next upgrade… 😉

Sharepoint Edit in Datasheet locks or freezes Internet Explorer

Recently I had an issue with a new masterpage for one of the companies in our group of companies. The design is pretty much the same for all companies, just different logo, header illustration and footer image. For some reason IE would hang if the user selected “Edit in Datasheet” in a Document Library.

Googling the problem gave me a couple of hints:

… but none of them helped in my situation.

I tried to implement the new design step-by-step and noticed that the freeze-problem only occured when I changed the footer image. After a lot of trial and error I found what seemed to be the culprit of my problem. The footer image that worked was 322×19 pixels. The image that didn’t work 316×21 pixels. By resizing the footer image I found that as long as the height was 19 pixels I could change the width without any problem. Don’t ask why I tried this in the first place…

This correlates to Tom’s discovery which suggests that the GC-functions that resizes the grid is dependant on the scroll height. When the footer image got taller than 19 pixels – scroll height changes too.

Conclusion: Edit in Datasheet is VERY dependant on the layout. Hope Microsoft can fix this soon!

Enable debug information in Sharepoint

Just a reminder for myself:

 

<?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
<configuration>
  <configSections>
    <sectionGroup name=”SharePoint”>
      <section name=”SafeMode” type=”Microsoft.SharePoint.ApplicationRuntime.SafeModeConfigurationHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” />
    </sectionGroup>
  </configSections>

  <SharePoint>
    <SafeMode MaxControls=”200″ CallStack=”true” DirectFileDependencies=”10″ TotalFileDependencies=”50″ AllowPageLevelTrace=”false” />
  </SharePoint>

  <system.web>

    <customErrors mode=”Off” />

    <compilation batch=”false” debug=”true” />

  </system.net>
</configuration>

‘No such host is known’ when browsing Roles/Users/Groups in Visual K2 Studio

I had re-installed K2 on a new development machine and was trying to create a new K2 process. But when selecting Destination I got an errormessage when trying to select Role, User or Group:

image

Googling wasn’t very helpful, so I had to investigate…

On my development machine in the file C:\Program Files (x86)\K2 blackpearl\Bin\configurationmanager.conf I found the solution. I just had to replace the default Host like this:

<plugins>
  <plugin text=”User Browser” description=”User Browser” makeAvailableOffline=”false” minVersionRequired=”4.0.0.0″ type=”SourceCode.Workflow.Plugins.UserBrowser.UserBrowserPlugin” assembly=”SourceCode.Workflow.Plugins, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d” name=”User Browser”>
    <settings>
      <add key=”UserBrowserServer” value=”Integrated=True;IsPrimaryLogin=True;Authenticate=True;EncryptedPassword=False;Host=SERVERNAME;Port=5555″ />
    </settings>

Restart Visual Studio and everything should (hopefully) work.

Kerberos 101 – Love, Hate, Love

Update: Read the Kerberos-page linked to on the right side as it is more updated.

Firstly – I assume you already know what Kerberos is and which problems it is intending to solve. This posting will not teach you this – but this might…

Even though I have tried to follow much of the available information out there, I was stuck on an issue involving an ASP.net frontend, WCF webservice and CRM backend. The reason was off course just ignorance and lack of better knowledge — as often is the case when dealing with something you don’t need to use often.

This is just a summary of my experience that might act as an checklist for others:

  • Use separate domain accounts for each individual service / IIS application pool. This makes registering SPN’s cleaner.
  • Use hostname’s (intranet.company.com, crm.company.com etc) for all IIS web applications and never refer to servername in calling applications.
  • Register all hostname’s with A-records in DNS. Don’t use CNAME! And off course make sure the server is set up with static IP or DHCP record.
  • Set up Kerberos Service Principle Names (SPN) correctly:
    • Register SPN for hostname’s only (HTTP/intranet.company.com) as SPN for web applications.
    • Don’t register HTTP/NETBIOS-name and HTTP/Fully-qualified-domain-name as many suggests.
    • Don’t delete HOST/SERVERNAME SPN’s registered on the computer account (domain\SERVERNAME$) or else you will get into trouble. I discovered it the hard way trying to clean up my SPN’s after doing a lot of testing. They can easily be re-created.
  • Enable Kerberos logging: HKLM\Software\CurrentControlSet\System\Lsa\Kerberos\Paremeters\LogLevel = 1 (DWORD
  • Enforce Kerberos to use TCP instead of UDP: HKLM\System\CurrentControlSet\Lsa\Kerberos\Parameters\MaxPacketSize = 1 (DWORD) to get rid of some Kerberos error messages
  • Use DelegConfig to test Kerberos:
    • Make test-user member of  Local Admin group of server
    • Extract files to C:\Kerberos
    • Add virtual directory in IIS web application you need to test with Kerberos as Alias, C:\Kerberos as Path and and Read and Execute permission
    • On server in question, log in as test-user and go to HTTP://intranet.company.com/Kerberos) – pray to God for all green checkboxes
  • When nothing of this helped – you’re on your own