Forum Discussion
Keith_Richards_
Nimbostratus
Feb 12, 2007workaround 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 - Keith_Richards_
Nimbostratus
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'. - Keith_Richards_
Nimbostratus
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
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects
