views:

141

answers:

2
Warning 1 Custom tool warning: Cannot import wsdl:binding
Detail: The given key was not present in the dictionary.
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://wrapper.dao.ccarwebservice.ids.com']/wsdl:binding[@name='CCaRWebServiceHttpBinding'] C:\Users\me\Documents\Visual Studio 2008  \Projects\CcarsWcfTest\CcarsWcfTest\Service References\ServiceReference1\Reference.svcmap 1 1 CcarsWcfTest

what can I do to resolve this issue?

I've tried running the service utility from the command prompt and adding a service reference to my project. I've also gone into the advanced setting in the Add Service Reference dialog and deselected 'Reuse types in all referenced assemblies'.

EDIT

Here is the part of the wsdl I think it's referring to..

<wsdl:binding name="CCaRWebServiceHttpBinding" type="ns:CCaRWebServicePortType">
    <http:binding verb="POST"/>
    <wsdl:operation name="fnGetccarprogramsummaryarray">
        <http:operation location="CCaRWebService/fnGetccarprogramsummaryarray"/>
        <wsdl:input>
            <mime:content type="text/xml" part="fnGetccarprogramsummaryarray"/>
        </wsdl:input>
        <wsdl:output>
            <mime:content type="text/xml" part="fnGetccarprogramsummaryarray"/>
        </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="fnGetccarprogramsummary">
        <http:operation location="CCaRWebService/fnGetccarprogramsummary"/>
        <wsdl:input>
            <mime:content type="text/xml" part="fnGetccarprogramsummary"/>
        </wsdl:input>
        <wsdl:output>
            <mime:content type="text/xml" part="fnGetccarprogramsummary"/>
        </wsdl:output>
    </wsdl:operation>
</wsdl:binding>



public partial class fnGetccarprogramsummaryarrayRequest
{

    public fnGetccarprogramsummaryarrayRequest()
    {
    }
}

the others are like this...

    public partial class fnGetccarprogramsummaryRequest
{

    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://wrapper.com", Order=0)]
    [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
    public string programAcronym;

    public fnGetccarprogramsummaryRequest()
    {
    }

    public fnGetccarprogramsummaryRequest(string programAcronym)
    {
        this.programAcronym = programAcronym;
    }
}
+1  A: 

Where did the WSDL come from? How was it generated?

It could be the the definition of the input and return types are missing.

  • fnGetccarprogramsummaryarray
  • fnGetccarprogramsummary.

It could be that it is trying to look for the definition in an array of types and not finding it.

EDIT

I think that I found it you have a POST binding and the tool only supports a SOAP binding

http://social.msdn.microsoft.com/Forums/en/wcf/thread/859a2c87-02db-469d-ab65-c558ff091e61

The key that is not present is then the SOAP binding.

Shiraz Bhaiji
The wsdl comes from another companys site. We were using a regular asmx service and everything worked fine, so I don't know that the return types are missing.
Avien
Could you open the wsdl file in notepad and check for the definition of the types fnGet... Also which technology are the services implemented in on the other site?
Shiraz Bhaiji
they are using soap.. message level security and client certificates. not sure if that's exactly what you meant. Ok, I'm going to update my question to show the fnGetccarprogramsummaryarrayRequest. All of the other fnGets have return types or parameters.
Avien
+1 for the only answer offered..
Avien
A: 

After searching.. the only solution I've come across is to ignore this error.

"It is internal implementation detail of svcutil.

The error is probably since the wsdl contains a POST binding and the utlity only works on SOAP bindings. But if there is another SOAP binding in the wsdl it works."

Avien