Forum Discussion

Keith_Richards_'s avatar
Keith_Richards_
Icon for Nimbostratus rankNimbostratus
Feb 12, 2007

workaround for VS Express connecting to iControl

I've seen a couple of posts from Joe explaining workarounds for Visual Studio's inability to connect to the iControl SSL interface, here they are:

 

 

You can try these work-arounds.

 

 

1. Open a browser and connect to the iControl portal link you included. After it authenticates, it will supply a list of links to the available WSDL files. Copy the direct link to the interface you want to add and then try your procedure again with the direct URL (ie. http://192.168.1.198/iControl/iControlPortal.cgi?WSDL=LocalLB.Pool ) bypassing the iControl Portals WSDL listing.

 

 

If this doesn't work...

 

 

2. download the SDK

 

2a. open a visual studio command prompt window

 

2b. change directories to the sdk_root/sdk/wsdl directory

 

2c. Run wsdl.exe on the WSDL for the interface you are interested in.

 

2c. copy the generated .cs or .vb file to your project and select add existing item.

 

 

Now I couldn't get point (1) to work with the direct URL as http or https. So then I tried option (2) but can't find the Visual Studio Command Prompt - is this included with the express version? I'm afraid I'm a networking guy not a developer so this is steep learning curve.

 

 

Thanks in advance, Keith

3 Replies

  • The VS Command Prompt is a batch script that sets up the paths for running the VS command line tools. For VS2005 this is what I run:

     

     

    C:\Program Files\Microsoft Visual Studio 8\vc\vcvarsall.bat x86

     

     

    For my install, a short cut is found in the Visual Studio Tools folder in the start menu under the Microsoft Visual Studio 2005 program group.

     

     

    -Joe
  • Thanks Joe for the quick reply.

     

     

    I've been trying to follow the example in the introduction video. I found the output (pasted at the bottom of this post) when I tried to run the 'wsdl'there was some error message but it generated the .cs file. I then added this into the project via Project/Add Existing Item... and it appears under the main iControlApp with a little C icon. What I can't work out is how you reference the methods. In the video you then talk about adding:

     

    Node.ITCMLocalLBNode node = new Node.ITCMLocalLBNode();

     

    and your editor recognises the Node (class? via the Web Reference you created called Node) and the context popup prompts for the available methods - this doesn't happen in my editor (Visual C 2005 Express) and I'm concerned that it doesn't work or I've done something else wrong!

     

     

    On a different note, the 9.2.2 SDK says that ITCM methods are deprecated - are there any plans to do another introductory video on version 9? The introduction one would be great but it is difficult to follow due to the Web Reference bug :-(

     

     

    I come from a networking background and need to teach some people

     

    next week the basics of iControl with similar non-programming background!

     

     

    I hope you can help, thanks, Keith

     

     

    Output from WSDL:

     

     

    C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0>wsdl "C:\Documents and Setti

     

    ngs\richardsk\My Documents\Downloads\F5\iControl\iControl-9.2.2\sdk\wsdl\ITCMLoc

     

    alLB.Node.wsdl"

     

    Microsoft (R) Web Services Description Language Utility

     

    [Microsoft (R) .NET Framework, Version 2.0.50727.42]

     

    Copyright (C) Microsoft Corporation. All rights reserved.

     

    Warning: This web reference does not conform to WS-I Basic Profile v1.1.

     

    R2706: A wsdl:binding in a DESCRIPTION MUST use the value of "literal" for the u

     

    se attribute in all soapbind:body, soapbind:fault, soapbind:header and soapbind:

     

    headerfault elements.

     

    - Input element soapbind:body of operation 'get_dynamic_ratio' on portType 'I

     

    TCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Output element soapbind:body of operation 'get_dynamic_ratio' on portType '

     

    ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Input element soapbind:body of operation 'get_list' on portType 'ITCMLocalL

     

    B.NodeBinding' from namespace 'urn:iControl'.

     

    - Output element soapbind:body of operation 'get_list' on portType 'ITCMLocal

     

    LB.NodeBinding' from namespace 'urn:iControl'.

     

    - Input element soapbind:body of operation 'get_node_address_availability' on

     

    portType 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Output element soapbind:body of operation 'get_node_address_availability' o

     

    n portType 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Input element soapbind:body of operation 'get_node_address_limits' on portT

     

    ype 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Output element soapbind:body of operation 'get_node_address_limits' on port

     

    Type 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Input element soapbind:body of operation 'get_node_address_states' on portT

     

    ype 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Output element soapbind:body of operation 'get_node_address_states' on port

     

    Type 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Input element soapbind:body of operation 'get_node_address_statistics' on p

     

    ortType 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Output element soapbind:body of operation 'get_node_address_statistics' on

     

    portType 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Input element soapbind:body of operation 'reset_node_address_statistics' on

     

    portType 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Output element soapbind:body of operation 'reset_node_address_statistics' o

     

    n portType 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Input element soapbind:body of operation 'set_dynamic_ratio' on portType 'I

     

    TCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Output element soapbind:body of operation 'set_dynamic_ratio' on portType '

     

    ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Input element soapbind:body of operation 'set_node_address_availability' on

     

    portType 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Output element soapbind:body of operation 'set_node_address_availability' o

     

    n portType 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Input element soapbind:body of operation 'set_node_address_limits' on portT

     

    ype 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Output element soapbind:body of operation 'set_node_address_limits' on port

     

    Type 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Input element soapbind:body of operation 'set_node_address_states' on portT

     

    ype 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

    - Output element soapbind:body of operation 'set_node_address_states' on port

     

    Type 'ITCMLocalLB.NodeBinding' from namespace 'urn:iControl'.

     

     

    For more details on the WS-I Basic Profile v1.1, see the specification

     

    at http://www.ws-i.org/Profiles/BasicProfile-1.1.html.

     

     

    Writing file 'C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\ITCMLocalLBNod

     

    e.cs'.
  • Joe,

     

     

    You must never sleep! Thanks for the comprehensive reply.

     

     

    Please could I take part in the beta of the assembly, I'll definitely make time to look at it over the next couple of months.

     

     

    thanks, Keith