Monday 18 October 2010

The report server has encountered a configuration error. (rsServerConfigurationError)

After installing Sql Server 2008 with Reporting Services on Windows XP I needed to do some initial configuration to make it work locally:
  1. Open Configuration Manager
    Go to: Microsoft Sql Server 2008 > Configuration Tools > Reporting Services Configuration Manager

  2. Configure Web Service Url
    I used the default values suggested by configuration manager. To do that simply choose 'Apply'. Result: Reporting Services Configuration Manager - Web Service Url

  3. Configure Report Manager Url
    Again, I used the default values:

    Reporting Services Configuration Manager - Report Manager Url

After doing that I tried to to access: http://localhost/Reports
In my case I got displayed the following error:
The report server has encountered a configuration error. (rsServerConfigurationError).
To get rid of this I needed to perform to 2 extra steps:
  1. Define database to use
    I created a new database for Reporting Services using the same configuration manager:

    Reporting Services Configuration Manager - Database
  2. Set folder security
    Now check which account is used by reporting services:

    Reporting Services Configuration Manager - Account...and grant access for that user to the Reporting Services installation folder. In my case it is:
    C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services
After doing that I can access my Report Manager with no problems.

Wednesday 6 October 2010

WCF Endpoint ABC

AS you probably know WCF stands for Windows Communication Foundation. If you want to make your WCF service accessible by clients you need to define at least one endpoint that would be used for communication. Each endpoint definition needs to answer 3 basic questions:
  1. Where?
  2. What?
  3. How?
To properly answer these 3 questions you need to specify so called "Endpoint ABC":

  • A - Address (Where?)
    This is the network address of your service saying where to find it. WCF support several address types/protocols. E.g. if you are creating a regular SOAP web service you would use an HTTP or HTTPS address. The type of the address depends directly on the binding type (see next definition).

  • B - Binding (How?)
    Binding defines how clients can communicate with our service. It specifies the transport protocol that should be used (HTTP, TCP, ...), web service protocol, encoding, security settins etc.

  • C - Contract (What?)
    Contract defines what functionality your service exposes. This is simply the interface that your WCF service implements.
In practice this could look as follows (SOAP web service endpoint):
Simple as ABC, isn't it? :)