Encountering errors while creating VB .Net Class from WSDL File

Web Service Call from Studio 2008 Project Issue

I am developing a Visual Studio 2008 (VB) based app which needs to access some customer data by calling Web Service. This Web Server is behind Firewall, therefore my development workstation based development environment can not directly access the definition file (WSDL File). Therefore I cannot select "Add Web Reference" option, specify the URL and be able to call related methods.

Therefore, I tried to generate Proxy Class based code by using WSDL.exe utility. Using Visual Studio 2008 Command Prompt, I typed “WSDL.exe /l:VB RepositoryService.WSDL” command. I am getting the following error message:

Error: Cannot find definition for http://service.repository.ivr.abc.com:RepositoryService.  Service Description with namespace http://service.repository.ivr.abc.com is missing.

It appears that this WSDL file is making reference to the below listed “http://service.repository.ivr.abc.com:RepositoryService” URL and it is not accessible from my development workstation, therefore the above error is being generated.

Is this the case? If yes then how do I get around these issues?

Any suggestions would be greatly appreciated.

RepositoryService.WSDL File’s contents are pasted below:

<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://service.repository.ivr.abc.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://service.account.ivr.abc.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="RepositoryServiceBusImplService" targetNamespace="http://service.account.ivr.abc.com">
  <import location="http://etsmysqlws.lb.abc.com:8080/IVRRepository/RepositoryService?wsdl=wsdl1" namespace="http://service.repository.ivr.abc.com">
    </import>
  <binding name="RepositoryServiceBusImplPortBinding" type="ns1:RepositoryService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="getCallDetails">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
      <fault name="RepositoryServiceException">
        <soap:fault name="RepositoryServiceException" use="literal"/>
      </fault>
    </operation>
    <operation name="saveCallDetails">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
      <fault name="RepositoryServiceException">
        <soap:fault name="RepositoryServiceException" use="literal"/>
      </fault>
    </operation>
  </binding>
  <service name="RepositoryServiceBusImplService">
    <port binding="tns:RepositoryServiceBusImplPortBinding" name="RepositoryServiceBusImplPort">
      <soap:address location="http://etsmysqlws.lb.abc.com:8080/IVRRepository/RepositoryService"/>
    </port>
  </service>
</definitions>

RobertFromSecretWeaponsAsked:
Who is Participating?
 
AngryBinaryConnect With a Mentor Commented:
I believe this is your problem:

<import location="http://etsmysqlws.lb.abc.com:8080/IVRRepository/RepositoryService?wsdl=wsdl1" namespace="http://service.repository.ivr.abc.com"></import>

This is saying you need to import another WSDL from the url "http://etsmysqlws.lb.abc.com:8080/IVRRepository/RepositoryService?wsdl=wsdl1" to get the definition of a Web Service entity (in this case, "RepositoryService"), and as you said you don't have access to this server behind your firewall.

If you can manually copy this file to your machine, you can change the location URL in the import tag to the file's location on your file system.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.