|
|
|
SSC Journeyman
      
Group: General Forum Members
Last Login: Friday, May 10, 2013 9:44 AM
Points: 78,
Visits: 251
|
|
Hi
I am trying to call the WCF service from SQL CLR Stored procedure. I am able to create the procedure. but when I am executing the stored proc. it is showing the following error
Msg 6522, Level 16, State 1, Procedure SubmitFaxRequest, Line 0
A .NET Framework error occurred during execution of user-defined routine or aggregate "SubmitFaxRequest":
System.TypeInitializationException: The type initializer for 'System.ServiceModel.ClientBase`1' threw an exception. ---> System.Security.HostProtectionException: Attempted to perform an operation that was forbidden by the CLR host.
The protected resources (only available with full trust) were: All
The demanded resources were: Synchronization, ExternalThreading
System.Security.HostProtectionException:
at System.ServiceModel.DiagnosticUtility.GetUtility()
at System.ServiceModel.DiagnosticUtility.get_Utility()
at System.ServiceModel.ClientBase`1..cctor()
System.TypeInitializationException:
at System.ServiceModel.ClientBase`1.InitializeChannelFactoryRef()
at System.ServiceModel.ClientBase`1..ctor()
at OutboundFaxClient..ctor()
at StoredProcedures.SubmitFaxRequest()
What could be problem?
Thanks
Thanks.
Gunjan.
|
|
|
|
|
SSC Veteran
      
Group: General Forum Members
Last Login: Friday, February 22, 2013 1:02 AM
Points: 206,
Visits: 425
|
|
| What is the permission you used when you executed your CREATE ASSEMBLY statement? Also, are you using any Message Boxes within your CLR code?
|
|
|
|
|
SSC Journeyman
      
Group: General Forum Members
Last Login: Friday, May 10, 2013 9:44 AM
Points: 78,
Visits: 251
|
|
Hi,
Thanks for the response.
I have tried Unsafe and Safe mode to create tha assembly. One more thing I want to point out is I am trying to create the xmlserializer.dll using sgen but I am getting the following error.
Error: The top XML element 'PharmaFaxResponse' from namespace '' references dist inct types SqlServerWCFService.Service1.PharmaFaxResponse and PharmaFax.PharmaFa xResponse. Use XML attributes to specify another XML name or namespace for the e lement or types. If you would like more help, please type "sgen /?"
Thanks.
Gunjan.
|
|
|
|
|
SSC Veteran
      
Group: General Forum Members
Last Login: Friday, February 22, 2013 1:02 AM
Points: 206,
Visits: 425
|
|
I am not sure of your SGen error and the permission errors are related. For the SGen error you may want to look at the link: http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/fa59738e-11e1-45f8-a81f-613c6bb377db/ . It may give you some ideas.
For the permission error, can you check if you are using any console.writeline or message boxes in you code?
|
|
|
|
|
SSC Journeyman
      
Group: General Forum Members
Last Login: Friday, May 10, 2013 9:44 AM
Points: 78,
Visits: 251
|
|
No I am not using any console.writeline or message boxes in my code. My method of WCF service does some processing and inserts data into the databse.
Thanks.
Gunjan.
|
|
|
|
|
SSCommitted
      
Group: General Forum Members
Last Login: Sunday, May 12, 2013 4:26 PM
Points: 1,696,
Visits: 1,742
|
|
I actually discussed the issue of using WCF in SQL CLR with some members of the SQLCAT team and Microsoft this past week since it seems to becoming more popular for people to attempt, and I have yet to see where someone actually succeeded in anything but the most simplistic service call which did absolutely nothing. WCF was not considered a valid SQLCLR implementation by anyone I spoke to, which is good to hear since that has been my stance on the subject since it was first broached on another forum earlier this year.
You have two other options that are better for a number of reasons. First you can look at the External Activator for Service Broker in SQL Server 2008 which is an additional download you can use. In SQL 2005, you can hack together a SqlDependency if you are trying to make data change based calls to the service, and let the service run a watcher against SQL Server data and changes to the data trigger events in the service to bring it alive for processing.
The other option is to go to BizTalk, which by the way was designed and intended to do multi-service/SOA integration between your systems like you are trying to do. You need to expand your toolset and use the correct tools to solve the problem.
Jonathan Kehayias | Principal Consultant | MCM: SQL Server 2008 My Blog | Twitter | MVP Profile Training | Consulting | Become a SQLskills Insider Troubleshooting SQL Server: A Guide for Accidental DBAs
|
|
|
|
|
SSCommitted
      
Group: General Forum Members
Last Login: Sunday, May 12, 2013 4:26 PM
Points: 1,696,
Visits: 1,742
|
|
|
|
|
|
SSC-Enthusiastic
      
Group: General Forum Members
Last Login: Wednesday, November 17, 2010 5:56 PM
Points: 185,
Visits: 637
|
|
| One option is to expose an http endpoint in your wcf service and simply treat it as a web service from your clr stored proc (ie. add a Web Reference and not a Service Reference). I've done this and it works as expected.
|
|
|
|
|
SSC Journeyman
      
Group: General Forum Members
Last Login: Friday, May 10, 2013 9:44 AM
Points: 78,
Visits: 251
|
|
Yes. That's what I have used to consume WCF service. Adding it as a Web reference works.
Thanks.
Gunjan.
|
|
|
|
|
SSC-Dedicated
           
Group: General Forum Members
Last Login: Today @ 1:37 PM
Points: 37,687,
Visits: 29,944
|
|
Gunjan (2/9/2009) Yes. That's what I have used to consume WCF service. Why?
SQL is a database engine, not an application server. Why is the database calling WCF services?
Gail Shaw Microsoft Certified Master: SQL Server 2008, MVP SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter We stand on the bridge and no one may pass
|
|
|
|