Consuming WCF Service in Class Library

Hello All
I have written a WCF service and hosted it on IIS 7.
I am trying to consume it through a c# class library project.
I tried both SVCUtil.exe and 'Add Service Reference' option in VS 2010. But I cannot seem to access the operation in the service.
I get an 'Object Reference' error.

i know for sure the Service works fine because I ran it in Debug Mode in visual studio, and used the test client.

I read in a blog that class library projects cannot read a config file.
So I use a custom channel factory class to read the .config file for the endpoint and binding.
Its through this channel that i try to access the service operation, and thats where I get the error.

Not getting why..

Please help!
Thanks in advance.
namespace Test
{
    public class Class1 : ProjectEventReceiver
    {
        public override void OnCheckIn(PSLib.PSContextInfo contextInfo, ProjectPostEventArgs e)
        {          
            StartService(e.ProjectGuid);
        }

        public void StartService(Guid projectUID)
        {
            try
            {
                CustomChannelFactory<ServiceReference1.IService1> channel = new CustomChannelFactory<ServiceReference1.IService1>("WSHttpBinding_IService1", "C:\\Users\\Administrator\\Documents\\Visual Studio 2010\\Projects\\Test\\Test\\app.config");

                ServiceReference1.IService1 svc = channel.CreateChannel();

                svc.CommenceSubstitution(projectUID);
                channel.Close();
            }
            catch (Exception ex)
            {

            }
        }
    }
}

Open in new window

suchitrashettyAsked:
Who is Participating?
 
Craig WagnerSoftware ArchitectCommented:
What you read about class libraries and config files is not entirely correct. In Visual Studio each project gets its own config file. However, the config file for a class library is not deployed automatically at run-time, and even if you manually copy it to your application folder it won't be read. The only config file that is used by a running application is the config file for the application's main entry point. If it is a web application that means web.config, if it is any other type of application that means <appname>.exe.config.

You could try taking all of the endpoint and binding configuration information that was generated in your class library's config file when you set the reference and copy it to the hosting application's configuration file.
0
 
suchitrashettyAuthor Commented:
Thanks andsSorry for the late response.

That is how i would do it with any application. But in this case, the class library I am developing is an Event Handler to be registered on the Project Server 2010, specifically Project Web Access (PWA). I am new to PWA and Sharepoint customization. Would you know where the config file would be in this case?
0
 
suchitrashettyAuthor Commented:
The solution was not pertinent to my situation.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.