Hi All,
I have a tricky one for you...
1. I create a custom log provider on machine A.
2. I deploy the signed assembly to thehttp://DTS/90/LogProviders directory & the GAC on both machine A & machine B.
3. I create a new package on machine A & go to enable logging for this new custom provider: I find it in the drop-down list of providers, and I can add it successfully.
4. I create a new package on machine B & go to enable logging for this new custom provider: I find it in the drop-down list of providers, but I can't add it. I get the following error:
'...failed to create log provider...the log provider type "_" specified for log provider "_" is not recognized as a valid log provider type. This occurs when an attempt is made to create a log provider for an unknown log provider type. Verify the spelling in the log provider type name (package)."
Any ideas anyone?
Tamim.
All I can suggest is to double check the version you have in LogProviders folder and the GAC, and perhaps clean out any duplicate/old versions. Restart VS as well if you make any changes. Seems simple but I know I have confused myself when developing stuff and it has been redeployed after some changes.|||
Many thanks for responding Darren. Both your suggestions are sound, but unfortunately they aren't applicable in this case: in order to rule out any problem introduced by my own work, I tried the same with HtmlLogProviderCS - one of Microsoft's own custom log providers, included in their samples - and I recreated the problem exactly. I didn't change the version and it wouldn't have existed on my machines beforehand, so it's definately something else. In essence, there is a problem in deploying the signed assembly of a custom log provider, onto any machine on which the library was NOT built. (Depending on your level of curiosity, perhaps you might like to try the same with HtmlLogProviderCS yourself?). I might contact Microsoft directly on this one, as I fear it may be a bug.
Thanks again for your input. I'm enjoying the book (am returning to it again & again!), and will let you know if I reach a definate conclusion.
Cheers,
Tamim.
|||I figured it out!! Basically the error message means that it couldn't find the custom object's DLL in the GAC, and the problem was that I drageed-&-dropped the library into the GAC, across servers - i.e. from a location on server A to the GAC on server B. This looks like it has worked, but in actual fact it didn't. When I remoted onto server B & opened the GAC up locally, it wasn't there. The solution therefore was to drag-&-drop into the GAC on server B, from a location on server B. But now for a tantilising follow up...
...my custom log provider opens up a client-side channel to a remote server, and sends messages into it. When I run the package from the package store it works, but when I run it from within a job the job succeeds and throws no errors or warnings, but the remoting bit doesn't work. I had added my remoting client-side configuration information into dtexecui.exe.config, but I'm thinking that when I run it from a job, I have to add the same config info into another config file? Any ideas anyone?
Hope the partial step forward is of use to someone...
|||If you have configuration info, then you need some more files, as the UI host is not the same as used when scehduled.
Try dtexec.exe.config and dtshost.exe.config, also in C:\Program Files\Microsoft SQL Server\90\DTS\binn
No comments:
Post a Comment