Sunday, October 23, 2011

InfoPath 2010 form publishing issues

Getting the InfoPath forms to render on the enterprise browsers may not be a simple approach.

I was left hunting for the below reason, when I started to publish a “Feedback Form” to a SharePoint 2010 Form Library.

I received the following error message “This form template is browser-compatible, but it cannot be browser-enabled on the selected site…”

image

Looking at the 3 different reasons listed in the popup, I knew I had my Form Services running. So wanted to check on which features should be available on the site collection.

Let’s go to Site Setting – Site Collection Features.

If we scroll down to verify the “SharePoint Server Enterprise Site Collection features”, that looks like was not activated by default. This feature as it describes enables the site collection to leverage the InfoPath Form Services along with several others. So let’s go ahead and “Activate” it.

image

Behind the scenes, it appears that activating this feature creates a “Form Templates” document library.

image

And that’s it. Let’s go ahead and try to publish our form again…successfully published !

Tuesday, October 18, 2011

DNS Validations in a SharePoint 2010 web parts

Recently, I got to perform a task during a SharePoint 2010 web part development, where it was required to check for the DNS validity. I needed to see if a newly built virtual-server was hosted correctly and DNS settings updated accordingly to make the server available over the enterprise network.

To start with, we need to make use of the class [IPHostEntry] available to us in the System.Net namespace. This will provide us a container class for Internet host address information. So we need to add this to the Project References and include the using statement:

using System.Net;

We will also use the [Dns] class in the System.Net namespace which will provide the simple domain name resolution functionality. This class has the GetHostEntry() method that will resolve the host name for us to an IPHostEntry instance.

So let’s jump into the code. Assuming, we have a textbox “txtServerName” and a button on the form named “btnValidate”.

protected void btnValidate_Click(object sender, EventArgs e)

{

  if (Page.IsPostBack)

  {

    string[] strRetValue = { "0", "0", "0" };

    strRetValue = ValidateDNS(txtServerName.Text.ToString());

    if (strRetValue[0].ToString() == "0")

    {

      //Display the error message: "DNS Validation failed!

      //Please  verify the name of the server or check if the server

      //has been provisioned correctly."

      …….

      //Your code when validation fails.

    }

    else

    {

// Display the Success message: "DNS Validation SUCCEEDED."

    …….

    //Your code.

   }

}

}

In the above code, we are simply trying to call the ValidateDNS() method. We pass the name of the server to be validated and grab the results of validation in the array of strings strRetvalue[].

This array contains two elements.

- 1st element would store either a “0” = InValid or “1” = Valid.

- 2nd element would store the actual host name if 1st element is “1” and NULL if it’s “0”.

- 3rd element would store any validation error messages generated.

So when we return from the ValidateDNS() call, we check to see the first element.

If it is equal to “0”, the validation had failed, else succeeded.

Now it’s time for the actual validation code.

Here’s what it looks like:

private string[] ValidateDNS(string p)

{

    string[] retValue = { "0", "0", "0" };

    try

    {

        IPHostEntry ipEntry; //The IP or Host Entry to lookup

        char[] myArray = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ-".ToCharArray(); //Value of alpha characters

      if (p.IndexOfAny(myArray) != -1) //If we see alpha characters,

      //that means it’s a forward lookup

     {

        //Resolve a host name to IPHostEntry instance.

        ipEntry = Dns.GetHostEntry(p.ToString());

        //Count returns number of elements in sequence.

        if (ipEntry.AddressList.Count() > 1)

       {

             retValue[0] = "1"; // Valid

             retValue[1] = ipEntry.HostName.ToString();

       }

      else

            retValue[0] = "0"; //InValid

   }

    //If no alpha characters, then it’s a reverse lookup

    else

    {

        ipEntry = Dns.GetHostEntry(p.ToString()); //Resolve it

    }

}

catch (System.Net.Sockets.SocketException se)

{

//The system had problems resolving the address passed.

retValue[2] = se.Message.ToString();

}

catch (System.FormatException fe)

{

//Some non-unicode characters were passed.

retValue[2] = fe.Message.ToString();

}

return retValue;  //Finally return the array.

}

I have explained each line of code with comments inline, so it shouldn’t be that hard to understand here.

This was all that was needed to do the DNS validation in a C# web-part code.

Technorati Tags: ,,

Monday, June 6, 2011

Windows 8 is born

This is the code-name for the next release of the OS that Microsoft is planning. As per MS, it will be HTML5 and JavaScript based, completely supporting the ARM technology for the touch-experience in the mobile and tablet world. Looks like would be available even to the PCs with the options to switch back to the Windows 7 look-n-feel for those, maybe the businesses, which are not yet ready to upgrade their hardware to the touch-smart PCs. I personally feel that MS has made the right move, though a little late, for a foray into the mobile world.

With the not so expected reception for Windows Phone 7, MS had to revamp the whole strategy.

But does that mean an end to the .Net, Silverlight. Maybe its too early to say that. With Scott Gu moving to head the Azure, Silverlight definitely needs some jumpstart from someone.

But how this HTML5 is going to have an impact is what needs to be watched for.

For now, lets wait and watch……maybe this video :)

Windows 8

Thursday, March 10, 2011

Processor Check Utility for 64-Bit Compatibility for VMware

There is good small utility out there on VMWare web site that can test your machine to ensure it has the necessary hardware for working with vmware virtual machines. There is a PDF available to with instructions on how-to. Available for Windows and Linux.

You can find it here:  Processor Check for 64-bit Compatibility

Thursday, February 10, 2011

IIS Tree not showing up

I was trying to bring-up SharePoint Central Admin on my old virtual machine (VPC 2007), but it never seemed to show-up.

When I tried to start the IIS Manager, I found no listings in it. I remembered, I had the same issue with one of my client recently and wanted to get to the root of this.

The only thing that I saw on the left pane was “IIS…” and the message “There are no items to see in this view.” on the right pane.

Looking at the Event Viewer – Systems, I saw this error specific to the “Service Control Manager” -

EventID: 7024

Error description: “The IIS Admin Service service terminated with service-specific error 2149648394 (0x8021080A).”

A little bit of web searching gave me a quick understanding about the metabase file getting corrupt and needed a restore from the IIS history folder.

Note: Some posts advised killing the inetinfo.exe in the TaskManager, which I never found as one of the processes.

So this is what I did to restore my previous metabase file (Here, it needs your intuition to make a call, and select a proper metabase file that you know would have been in a “GOOD STATE” before things got corrupted.) I compared the timestamp of the current file and looked for a file which was earlier than that. It worked for me and hopefully should work for you too :)

#1. Go to the folder location “C:\WINDOWS\system32\inetsrv” and backup the file named “MetaBase.xml”. Then delete this file from this location.

#2. Browse to the “C:\WINDOWS\system32\inetsrv\History” subfolder and choose the right .xml metabase file that you found to be in a good state. It should be called something like “MetaBase_0000013890_0000000000.xml”.

#3. Copy this file and paste it in “C:\WINDOWS\system32\inetsrv” folder.

#4. Now rename this to “MetaBase.xml”.

#5. Restart IIS. If the “IIS Admin Service” and all its dependent services are enabled, you IIS tree would start appearing. If not then probably, you need to look for each of the dependant services and try to start them in the order they need to be. Good Luck!!!

Friday, January 7, 2011

Working with PowerShell “cmdlets”

Pronounced “Command-lets”, cmdlets are a great way of scripting Administrative tasks in SharePoint 2010. I personally feel that I was missing such a tool till last year working with MOSS 2007. But with cmdlets, it looks extremely promising that Microsoft has ultimately provided the SharePoint Administrators – a single platform to script their tasks and run commands remotely/locally.

Recently, I was trying to look into these cmdlets and here are some quick view into some of the most basic ones.

Interestingly, these cmdlets are in a format that resembles the verb-noun pair. The noun generally starting with a “SP” for all SharePoint cmdlets.

#1. Get-SPContentDatabase: This gives you a list of all the Content DBs in your farm, with information on ID, Name, Server and Site count.

Okay, now you must be thinking that I am going to get nasty by listing down all these cmdlets, uhh… you are definitely wrong.

Instead, I just figured-out how to retrieve a list of such SP cmdlets and also how to pull more information about each of them.

Get-Command and Get-Help can be really handy for anyone starting on these. Here’s an example of how to use the Get-Command.

Get-Command –PSSnapin “Microsoft.SharePoint.PowerShell”

Further-more, if you start creating your own scripts, you would also need to start using these two very often:

> Measure-Command: This gives you the cmdlets execution time.

> Trace-Command: gives you the ability for debugging short scripts.

Technorati Tags: ,,

Wednesday, November 10, 2010

Easily Import Visio Flowcharts as SharePoint Designer Workflows

So here is a another feature that makes you happier when you are using the SharePoint Designer 2010. The integration with Visio 2010 has been improved quite-a-bit. Now you can create your companies workflows diagrams as flowcharts in Visio 2010 and export the file, to consume/import it back in SPD 2010. Awesome! I like that.

So you must be thinking to get started right away……. but wait !!!

There are some pre-reqs to this. You need to have the Premium edition for Visio 2010. With this edition, you can find the specific “SharePoint Workflow” templates to start creating the flowcharts.

So buckle up – and lets start the tour.

#1. Open Visio 2010 Premium edition.

#2. Select “Flowchart” and then “Microsoft SharePoint Workflow” from “Choose a Template”. Select your own Units, I selected [US Units] and click Create.

image

#3. You will get to choose from a list of SharePoint Workflow Actions, Conditions and Terminators.

image

This can then be very easily exported as a .vwi (visio workflow interchange) file which can be imported in your SharePoint Designer workflows and vice-versa too.

So have fun with SPD 2010 workflows.

Tuesday, November 9, 2010

Configure Reporting Services with SharePoint 2010

This post is in continuation from this post, where we saw how to proceed with this install and configuration when we already have the DBEngine, Analysis Services, etc installed on a SQL Box except for the Reporting Services.
Here, I proceed from where we select the Reporting Services Configuration Manager from the Configuration Tools.
image
Start the Reporting Services Configuration Manager and find your server/instance.
image
Click connect and you will see the next screen:
image
Follow the screens depicted as below to complete the rest of configurations.
image
image
image
image
image
image
image
image
image
image
image
I skipped the Report Manager URL, Email Settings and Executive Account as it is not mandatory at this step.
image
Take the encryption key backup.
Scale-out Deployment was disabled.
Now go back to the Web Service URL and Click Apply.
image
Next, you need to configure the Central Admin.
Go to CA –> General Application Settings –> Reporting Services Integration
image
And that should be all.

Update: Dec 23, 2011
If you need to read more about some of the requirements for running SSRS in SharePoint Integrated mode, visit this MSDN article.

And this Technet details much about SSRS Integration in SP 2010.

Thursday, October 28, 2010

Install the SharePoint integrated mode default configuration option is disabled while configuring the Reporting Services on SQL Server 2008 R2

I had a SQL Server 2008 Standard edition setup for the DBEngine and Integration Services. For some reason I did not install the Reporting Services at that time. Now I was trying to get the Reporting Services (RS) deployed with SharePoint 2010 in the integration mode.

The first choice was to install the RS. I got started, but to my surprise I saw the first two options “Install the Native mode…” and “Install the SP integrated mode…” disabled. I only had the option “Install, but do not configure the report server.” available to me.

Man, where did I go wrong. This is what it came to me first. But after a little search, I realized that this happens if you try it installing after the initial installation. And that is what I was doing. So I decided to proceed. I did see some warnings but they were not of much concerns.

I had to start the RS Configuration Manager from the Configuration Tools option and the later setups were pretty much the same old way of going through the wizard steps.

So there I was. And as the next steps, definitely you need the RS Add-In on SP 2010 box and take care of the rest of standard CA configuration steps.

Tuesday, October 26, 2010

Cannot access a host named SharePoint 2010 site locally from the server

I had a SP 2010 site setup and access it from my client machines. I was able to perform all administrative tasks from CA when I decided to switch to the server box and use the same host url “http://sharepoint.mycompany.com” that I was using from my client machine.

Guess what, I was not able to login to the site and it kept prompting me for my userid/pwd.

After  much of looking around, found this useful article which seems to be pointing to the security measures put in place by Microsoft starting Windows Server 2003 SP1 and later. It essentially got the loopback check in-place to prevent Man-In-The-Middle (MITM) attack from malicious apps.

You can read more about is here.