Dec 11, 2012

Consuming a web service using ASP .NET

To know about basics of web service read this article.
To know about creating a web service using ASP .NET read this article.

Background:
In the previous article we have learned about creating a web service. Now in this article, we will learn how to consume a web service using asp .NET.
Real Time Example:
Nowadays mobile application (Mobile Apps) are used widely all the users. Take a scenario, we install the “Weather” gadget in our mobile and check the weather of a particular place.
Think where we are receiving this weather information? It is actually we are consuming the web services.
We will select the region/place to see the weather, a web service will be called and the weather info is displayed.
Hence, Web Services are hosted somewhere and via internet we are consuming the data through the web service.

Implementation:
1. Create an ASP .NET web application with a simple design as shown below:
2. Now, we have to add the web service reference to this Project (Here we use the web service created in the previous article). Click on the Projects in solution explorer -> Add web reference -> give the url of the web service
(Note: to access the web service in the client use the appropriate machine/domain name)
Now, you will see the following screen:
3. Click on Go and search the web service and then give the web reference name say “Consume Service” in our example. Then click Add Reference button.
4. Now, in the solution explorer you will see the Web Reference being added as shown below:
5. We can use the methods exposed by the web service in our code and test the result. Sample code is shown below:
public partial class _Default : System.Web.UI.Page 
{
   protected void Page_Load(object sender, EventArgs e)
   {
   }
    protected void btnToCelsius_Click(object sender, EventArgs e)
    {
        double x = Convert.ToDouble(txtValue.Text);
        if(txtValue.Text != string.Empty)
        {
            try
            {
                ConsumeService.Service service = new ConsumeService.Service();

                lblOutput.Text = service.ToCelsius(x).ToString();                
                
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
    protected void btnToFahreinheit_Click(object sender, EventArgs e)
    {
        double x = Convert.ToDouble(txtValue.Text);

        if (txtValue.Text != string.Empty)
        {
            try
            {
                ConsumeService.Service service = new ConsumeService.Service();

                lblOutput.Text = service.ToFahreinheit(x).ToString();

            }
            catch (Exception)
            {
                throw;
            }
        }
    }
}

6. Build and run the code. Test the result by giving some inputs as shown below:

The whole source code can be downloaded from this link.

Hope the three articles about the web services explained about the basics of web services, creating and consuming the web services using ASP .NET in a simple way.
Please free to comment which help me to write more.

Creating Web Service using ASP .NET

To know about basics of web service read this article.

1.   Create an ASP .NET web service application using Microsoft Visual Studio.
2. Take a scenario that we have to convert Celsius to Fahrenheit and vice versa.
3.   Below is the code for our scenario:
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://ConversionWebService.org/Temp")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    public Service () {

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }
    [WebMethod(Description = "Convert Celsius to Fahreinheit")]
    public double ToFahreinheit(double C)
    {
        return C * (9.0/5.0) + 32;        
    }

    [WebMethod(Description = "Convert Fahreinheit to Celsius")]
    public double ToCelsius(double F)
    {
        return (F - 32) * (5.0/9.0);        
    }
   }
4. Build and run the web service, you will see the following output:
5.Now, we will test the web service by giving input values and invoke it.Below are the screen shots which will show the input given and the results:


                             
Hope this article, explains you about creating and running a simple web service using ASP .NET
Here is the link to download the full source code.

To know about consuming a web service using ASP .NET read this article.

Basics of Web Services

Introduction:
In this article, we aim at learning the basics of web services and understand how does web service works.
WebService:
1.   Web services are the easy way to create communications between different applications of different platform.
2.  Web Services extend these models a bit further to communicate with the Simple Object Access Protocol (SOAP) and Extensible Markup Language (XML) to eradicate the object-model-specific protocol barrier.

Components of Web Service:
All the standard Web Services works using following components
  1. SOAP (Simple Object Access Protocol)
  2. UDDI (Universal Description, Discovery and Integration)
  3. WSDL (Web Services Description Language)
SOAP (Simple Object Access Protocol):
SOAP is an XML-based protocol to let applications exchange information over HTTP. Simply, SOAP is a protocol for accessing a Web Service.
  1. It is a communication protocol and it is a format for sending messages.
  2. It is designed to communicate via Internet (W3C standard)
  3. It is platform and language independent
  4. SOAP allows you to get around firewalls
WSDL (WebServices Description language):
It is a W3C standard used to describe and locate the web service in XML language format.
UDDI (Universal Description, Discovery and Integration):
  1. It is a directory for storing information about web service
  2. It communicates via SOAP
  3. It is built on .NET platform
Why web service?
  1. Interoperability
  2. Usability
  3. Deployability
  4. Reusability
For more details on the advantages and disadvantages refer this MSDN article: http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/435f43a9-ee17-4700-8c9d-d9c3ba57b5ef

To know about creating a web service using ASP .NET read this article.
To know about consuming a web service using ASP .NET read this article.

Captcha using Java Script

Background:
Now a days, all the web sites requires inputs (contact us, feedback, etc.) from the end users. But many sites face a problem of spam or unwanted or junk messages. To avoid this we have a java script code which will generate the random codes which should be entered by the users manually.
This avoids the spam being automated or entered by the unwanted users being entered in to the site.

Solution:
Below is the code which consists of Java script implemented in HTML page for reference.

Random Message



Below is the screenshot of the same:
Here is the link to download the image and hmtl file. Captcha using JavaScript.
Hope this component helps using it in your website to avoid spam and unwanted messages.

Dec 8, 2012

Create Site Collection in Separate Content Database in SharePoint

Problem:
When a “Site Collection” is created in a web application, then the proceeding Site Collections created in the same “Web Application” will use the Same Content DB.
This creates problems in the following scenarios:
1. Size of the one Site Collection grows large then it will affect the other Site Collection too. The
reason being maximum size of a Content DB for a Site Collection with good performance is 200 GB
(referred some MSDN articles).
2.  During migration/archival/splitting of content DB.

Solution:
The solution for the above problem is to “Create Site Collections with Separate Content DB for each Site Collection”.
But by default SharePoint allows you to create new site collections in the Same Content DB which is used by the web application (one created first – Top Level Site Collection)
Using Central Administration page:
1.   Suppose that we have created a Top Level Site Collection with content DB named “WSS_Content_1000”. Now our scenario is to create a new site collection in the same web application with different content db.
2. Now navigate to Central Admin -> Application Management -> SharePoint Web Application Management -> Content databases
3. By using the option Add a content database in the menu, create a new content DB named “WSS_Content_1050”
 6. Now, you can see the database (WSS_Content_1000) in the stopped state: 
 7. Now, try creating a new Site Collection in the same web application. “Your new site collection will be forced to create in the Content DB which is available in the web application” (in our case it is WSS_Content_1050).
8. Now, change the status of the first content db to Ready state.
9. Now to check whether our new site collection is created in different db’s go to Central Administration -> Application management -> Site collection list. “You can see two site collections in two different databases” as shown below:
     ØTop level site collection created in WSS_Content_1000 db
     ØTop level site collection created in WSS_Content_1050 db


10. As shown in the above screenshot, we are able to create a new site collection with a new Content DB using the above method.

Oct 27, 2012

This item could not be crawled because the repository did not respond within the specified timeout period - SharePoint Search Error

Problem:
Environment: WSS 3.0, Microsoft Search Server Express 2008
The Search server is crawling the contents properly and the search is working as expected. Suddenly, search crawling stopped and the error in the Search log is
"This item could not be crawled because the repository did not respond within the specified timeout period. Try to crawl the repository at a later time, or increase the timeout value on the Proxy and Timeout page in search administration. You might also want to crawl this repository during off-peak usage times".
Solution:
I understood that the error is due to the Proxy and checked the Proxy and Time Out settings in Search Server Administration and it is 120 Seconds.
Then, removed the Proxy Settings configured in the IE. Followed by an incremental crawl fixed this issue and I didn’t see any errors after that.
Also, uncheck the option in the IE “Automatically Detect Settings” (if it is checked).
Here is the link which gave the complete solution for this issue:
Happy Sharing!

Aug 28, 2012

Advantage of PowerShell over STSADM

In SharePoint 2010, new concept called Power Shell is introduced. The main adavantage of using Windows Power Shell over STSADM is follows:
  • Windows PowerShell is built on the Microsoft .NET Framework and accepts and returns .NET Framework objects. Hence, can interact with .Net objects directly.
  • Here we use commandlets (cmdlet) instead of commands. Commandlet is a instance of .Net objects
  • We can automate the tasks using power shell scripts.
  • Windows PowerShell also gives you access to the file system on the computer and enables you to access other data stores, such as the registry and digital signature certificate stores.

Aug 6, 2012

Event ID 28721 in Source cannot be found

Problem:I have faced this problem when I tried to upload a document one of my document library in SharePoint. Neither the upload is successful nor no errors while uploading.
Event Log:I was unable to view any errors with respect to the document upload in the event log. I could see only the following logs in the event viewer:
Event Type: Error
Event Source: Windows SharePoint Services 3
Event Category: General
Event ID: 28721
User:  N/A
Description:The description for Event ID ( 28721 ) in Source ( Windows SharePoint Services 3 ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: #960013: Antivirus scanner timed out.


Following are the investigations done for fixing the errors:
1. Checked the file size limit in the web application general settings – but I have tried to upload only a few KB text file.
2. Checked the SQL server logs and there is enough space for the upload.
3. Created a new document library and tried attaching a new document which is unsuccessful.
4. Created a new list and added an item which is successful. But when tried attaching a document (or text or small file) it is unsuccessful.
Hence, I have concluded that there is no problem with SharePoint or any corruption of document library or list definition.
Looking at the event log carefully, I finally came to an idea that Antivirus is blocking something and it is where the problem is arising.

Solution:1. I have tried changing the Antivirus settings in the Central Administration 
2. Go to -> Central Administration -> Operations -> Antivirus -> Antivirus Settings -> I have unchecked the option Scan Documents on Upload -> Clicked save
3. Now, I have tried uploading the documents in the document library which is successful. Hence, concluding that the problem is due to the Microsoft Fore Front Security Antivirus.
4. Note: But we cannot make this option as default, since without antivirus scan, unwanted files (viruses, malwares, spywares, etc.,) may be uploaded which would be threat to the SharePoint environment.
5. Finally, updated the Antivirus definitions and license for the Fore Front antivirus. Then onwards, the upload is successful and secured one.

Microsoft Fore Front Security Antivirus1.  It is an antivirus provided by Microsoft dedicated to SharePoint environment. It will protect the SharePoint environment from the virus, spywares and other treats being uploaded.
2.  To know about the Microsoft Fore Front Security Antivirus click on this link
http://sharepoint.microsoft.com/en-us/product/Related-Technologies/Pages/Forefront-Protection-2010-for-SharePoint.aspx
3.  In the central Administration -> Operations -> Antivirus -> Antivirus Settings -> Scan documents on upload is set, then all the documents being uploaded will be scanned by the for front and then only uploaded into the SharePoint environment.

Happy Sharing!

Jul 30, 2012

Parser Error Data at the root level is invalid. Line 1, Position 1

I have got this error message suddenly in a (WSS 3.0) SharePoint site. The site is working as expected and it does not throw any errors before.
The error screen shot is below:


From the error message, I could understand that there is a problem with the browser comapatibility.
Solution:
I have navigated to the SharePoint site in the IIS and then explored the files in the IIS.
Then navigated to APP_Browsers folder, there I could see there is a  sub folder named _vti_cnf  inside I could see a file compat.broswer in it. This file (file which mentions the compatible browsers for loading the SharePoint site.) is already present in the root directory.
I have deleted this file (compat.browser) which is inside the _vti_cnf folder and refreshed the site, it worked as before.
Happy Sharing!

The POP3 service could not create the mailbox – the account already exists

In Windows Server 2003, I have configured POP 3 service, created domains and mailboxes.
I have created many users and associate mail boxes in the POP3 service and deleted for some reasons.
When I try to create the same user I have got the error:
The POP3 service could not create the mailbox - The account already exists

Even on manually deleting the folders (mailboxes created for each user created), I got this error.
Reason:
Then I came to know that the user associated with the mailbox is not deleted.
Right Click on My Computer -> Manage -> Administrative Tools -> Computer Management -> System Tools -> Local Users and groups -> Users -> Delete the user account for which you are unable to create the mailbox.
Note: Check the user associated with any other applications or any services before deleting the user.
Now, try creating the mailbox, you will be able to create the mailbox successfully!