SSIS WCF ProxyNamespace Ohhhhh my!
I've been struggling with this for a day and going on half now. Any help is greatly appreciated. I have a WCF service hosted by my local site. Binginds are configured for basicHTTP with no authentication. Service has been tested with WCFTestClient and it works fine. I am not specifying a namespace for the service contract. Enter SSIS. Created the HTTP Connection and added the WebService Task. Downloaded the WSDL. COnfigured everything to the best of my knowledge and when I execute I get the following Exception: [Web Service Task] Error: An error occurred with the following error message: "Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebserviceTaskException: Could not execute the Web method. The error is: Method 'ProxyNamespace.Transactions.ImportTransactions' not found.. at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebMethodInvokerProxy.InvokeMethod(DTSWebMethodInfo methodInfo, String serviceName, Object connection) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTaskUtil.Invoke(DTSWebMethodInfo methodInfo, String serviceName, Object connection, VariableDispenser taskVariableDispenser) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTask.executeThread()". So I read somewhere that the there was a problem with the importing of the schemas for the WSDL and so I removed the Tempuri.org line. Got a new error. At this point I went back the WCF service contract and added a namespace. Rebuild the solution and tested again with WCFTestClient.exe and it worked as expected. Went back to the SSIS project and downloaded the WSDL again. Verified that the Tempuri.org reference was gone from the WSDL. Now I'm getting the following error when executing the Task: [Web Service Task] Error: An error occurred with the following error message: "Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebserviceTaskException: System.ArgumentException: Cannot find definition for KHE.PaymentCenter.Web.Services:ITransactions. Service Description with namespace KHE.PaymentCenter.Web.Services is missing. Parameter name: name at System.Web.Services.Description.ServiceDescriptionCollection.GetServiceDescription(XmlQualifiedName name) at System.Web.Services.Description.ServiceDescriptionCollection.GetPortType(XmlQualifiedName name) at System.Web.Services.Description.ProtocolImporter.GenerateCode(CodeNamespace codeNamespace, ImportContext importContext, Hashtable exportContext) at System.Web.Services.Description.ServiceDescriptionImporter.Import(CodeNamespace codeNamespace, ImportContext importContext, Hashtable exportContext, StringCollection warnings) at System.Web.Services.Description.ServiceDescriptionImporter.Import(CodeNamespace codeNamespace, CodeCompileUnit codeCompileUnit) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebMethodInvoker.generateProxy(ServiceDescriptionCollection sdCollection, XmlSchemas schemas) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTaskUtil.Invoke(DTSWebMethodInfo methodInfo, String serviceName, Object connection, VariableDispenser taskVariableDispenser) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTask.executeThread()". Santiago Perez Software Engineer
December 15th, 2010 12:03pm

I can't believe no one has encountered this before??Santiago Perez Software Engineer
Free Windows Admin Tool Kit Click here and download it now
December 16th, 2010 3:19pm

Hi Santiago, The error "Service Description with namespace KHE.PaymentCenter.Web.Services is missing." is caused by the namespace is missing from the service element in the WSDL file. The WSDL shoule have a <service> element like this <service name='MyService'> <port name='MyPort' binding='MyBinding'> But what it should have been is <port name='MyPort' binding='tns:MyBinding'> The solution to solve the issue is described in the following article: http://ayende.com/Blog/archive/2007/05/06/WCF-and-SSIS-Round-2.aspx If you have any more questions, please feel free to ask. Thanks, Jin ChenJin Chen - MSFT
December 16th, 2010 10:12pm

Hi Santiago, The error "Service Description with namespace KHE.PaymentCenter.Web.Services is missing." is caused by the namespace is missing from the service element in the WSDL file. The WSDL shoule have a <service> element like this <service name='MyService'> <port name='MyPort' binding='MyBinding'> But what it should have been is <port name='MyPort' binding='tns:MyBinding'> The solution to solve the issue is described in the following article: http://ayende.com/Blog/archive/2007/05/06/WCF-and-SSIS-Round-2.aspx If you have any more questions, please feel free to ask. Thanks, Jin ChenJin Chen - MSFT
Free Windows Admin Tool Kit Click here and download it now
December 16th, 2010 10:12pm

I have followed Ayande's recommendation and now I am getting a different message. I have checked the entire WCF project for Tempuri.org but it isn't found anywhere. Furthermore when I check the WSDL the WebService Task downloads it has xmlns:i0="http://tempuri.org/" in the definitions. Below is my config: <system.serviceModel> <behaviors > <serviceBehaviors > <behavior name="KHE.PaymentCenter.Web.Services.TransactionsBehavior"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> </behaviors> <services > <service behaviorConfiguration="KHE.PaymentCenter.Web.Services.TransactionsBehavior" name="KHE.PaymentCenter.Web.Services.Transactions"> <endpoint address="" binding="basicHttpBinding" contract="KHE.PaymentCenter.Web.Services.ITransactions" bindingNamespace="KHE.PaymentCenter.Web.Services"> <identity > <dns value="localhost" /> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" bindingNamespace="KHE.PaymentCenter.Web.Services"/> </service> </services> </system.serviceModel> [Web Service Task] Error: An error occurred with the following error message: "Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebserviceTaskException: System.ArgumentException: Cannot find definition for http://tempuri.org/:BasicHttpBinding_ITransactions. Service Description with namespace http://tempuri.org/ is missing. Parameter name: name at System.Web.Services.Description.ServiceDescriptionCollection.GetServiceDescription(XmlQualifiedName name) at System.Web.Services.Description.ServiceDescriptionCollection.GetBinding(XmlQualifiedName name) at System.Web.Services.Description.ProtocolImporter.GenerateCode(CodeNamespace codeNamespace, ImportContext importContext, Hashtable exportContext) at System.Web.Services.Description.ServiceDescriptionImporter.Import(CodeNamespace codeNamespace, ImportContext importContext, Hashtable exportContext, StringCollection warnings) at System.Web.Services.Description.ServiceDescriptionImporter.Import(CodeNamespace codeNamespace, CodeCompileUnit codeCompileUnit) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebMethodInvoker.generateProxy(ServiceDescriptionCollection sdCollection, XmlSchemas schemas) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTaskUtil.Invoke(DTSWebMethodInfo methodInfo, String serviceName, Object connection, VariableDispenser taskVariableDispenser) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTask.executeThread()". Santiago Perez Software Engineer
December 17th, 2010 5:15pm

I have followed Ayande's recommendation and now I am getting a different message. I have checked the entire WCF project for Tempuri.org but it isn't found anywhere. Furthermore when I check the WSDL the WebService Task downloads it has xmlns:i0="http://tempuri.org/" in the definitions. Below is my config: <system.serviceModel> <behaviors > <serviceBehaviors > <behavior name="KHE.PaymentCenter.Web.Services.TransactionsBehavior"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> </behaviors> <services > <service behaviorConfiguration="KHE.PaymentCenter.Web.Services.TransactionsBehavior" name="KHE.PaymentCenter.Web.Services.Transactions"> <endpoint address="" binding="basicHttpBinding" contract="KHE.PaymentCenter.Web.Services.ITransactions" bindingNamespace="KHE.PaymentCenter.Web.Services"> <identity > <dns value="localhost" /> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" bindingNamespace="KHE.PaymentCenter.Web.Services"/> </service> </services> </system.serviceModel> [Web Service Task] Error: An error occurred with the following error message: "Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebserviceTaskException: System.ArgumentException: Cannot find definition for http://tempuri.org/:BasicHttpBinding_ITransactions. Service Description with namespace http://tempuri.org/ is missing. Parameter name: name at System.Web.Services.Description.ServiceDescriptionCollection.GetServiceDescription(XmlQualifiedName name) at System.Web.Services.Description.ServiceDescriptionCollection.GetBinding(XmlQualifiedName name) at System.Web.Services.Description.ProtocolImporter.GenerateCode(CodeNamespace codeNamespace, ImportContext importContext, Hashtable exportContext) at System.Web.Services.Description.ServiceDescriptionImporter.Import(CodeNamespace codeNamespace, ImportContext importContext, Hashtable exportContext, StringCollection warnings) at System.Web.Services.Description.ServiceDescriptionImporter.Import(CodeNamespace codeNamespace, CodeCompileUnit codeCompileUnit) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebMethodInvoker.generateProxy(ServiceDescriptionCollection sdCollection, XmlSchemas schemas) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTaskUtil.Invoke(DTSWebMethodInfo methodInfo, String serviceName, Object connection, VariableDispenser taskVariableDispenser) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTask.executeThread()". Santiago Perez Software Engineer
Free Windows Admin Tool Kit Click here and download it now
December 17th, 2010 5:15pm

Correction, I just went back to check and saw that I was missing the namespace in the ServiceContract. Added it in and still back to square one: [Web Service Task] Error: An error occurred with the following error message: "Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebserviceTaskException: Could not execute the Web method. The error is: Method 'ProxyNamespace.Transactions.ImportTransactions' not found.. at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebMethodInvokerProxy.InvokeMethod(DTSWebMethodInfo methodInfo, String serviceName, Object connection) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTaskUtil.Invoke(DTSWebMethodInfo methodInfo, String serviceName, Object connection, VariableDispenser taskVariableDispenser) at Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTask.executeThread()". Santiago Perez Software Engineer
December 17th, 2010 5:36pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics