|Product:||SQL Server Notification Services|
|Message:||An instance of the delivery protocol could not be created.|
|This error occurs when the distributor fails to instantiate a custom delivery protocol class. This failure can occur because of a configuration error, a missing constructor, or a runtime exception.|
|In the configuration file, check that the correct class and assembly names have been specified for the custom delivery protocol in the <protocols> section. Because the class name is case sensitive, check that the capitalization is correct.
Then check that the class name is fully qualified with the appropriate namespace prefix. For example, if the class is called MyProtocol and appears in the MyApplication.CustomComponents namespace, then give the class name as MyApplication.CustomComponents.MyProtocol. Also, give the assembly name with a full path. For example, if the assembly is called myprotocol.dll and is located in the C:\bin\CustomComponents directory, then give the assembly name as C:\bin\CustomComponents\myprotocol.dll.
If the class and assembly name are correct, then check to ensure that the class has a parameterless constructor (a constructor that takes no parameters). Every custom delivery protocol class must have a parameterless constructor. Typically, the constructor of a delivery protocol class does nothing; all initialization work happens in the IDeliveryProtocol.Initialize() method, which is called by the distributor after the class has been instantiated.
If all of the above are correct, then the custom delivery protocol class might be throwing an exception in its constructor at runtime. If so, the body of the event message contains information about the exception. Examine your code for possible exceptions that might be thrown. An easy way to debug it is to write a simple test program that instantiates your custom delivery protocol class using its parameterless constructor.</protocols>