gpt4 book ai didi

.net - 从 .NET 使用 Cisco WSMA

转载 作者:行者123 更新时间:2023-12-02 00:38:19 26 4
gpt4 key购买 nike

我需要从我的 .NET 应用程序配置和查询 Cisco 路由器,我需要通过 Cisco WSMA 来完成网络服务接口(interface)。

这些服务通过 HTTP(在我的例子中)公开,并使用 SOAP 1.2 来封装请求和响应(架构 here)。因此调用可能如下所示(来自 Wikipedia article 的示例):

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"> 
<SOAP:Body>
<request correlator="4.7" xmlns="urn:cisco:wsma-config" >
<configApply details="all">
<config-data>
<cli-config-data>
<cmd>access-list 1 permit any</cmd>
<cmd>ip hst foo 1.1.1.1</cmd>
<cmd>no cns exec 80 </cmd>
</cli-config-data>
</config-data>
</configApply>
</request>
</SOAP:Body>
</SOAP:Envelope>]]>]]>

当然,这一切都非常酷(当然比使用 telnet 好 - 它支持原子事务 - 全部成功或全部失败 - 而 CLI 不支持)。

但直到现在,我一直生活在一个舒适的 .NET 泡沫中,其中 Web 服务发出 WSDL,我可以在客户端中构建代理,一切正常(或不正常 ;-)。据我所知,没有可用的 WSDL,而且我不太明白如何解决这个问题。

  • 我如何为这样的事情配置 WCF(设置 basicHttpBinding 和客户端端点)?
  • 如何将这些模式转化为契约?手工?
  • SvcUtil 可以对这些模式做任何有用的事情吗?
  • 如果我能以某种方式创建契约(Contract),这是否意味着我可以生成代理来工作,还是我必须在较低级别工作?

我知道一旦我有了动力,我就会过得很好。有类似经历的人可以成为明星并给我一些关于如何去做的要点吗?也许给我指点一些相关的博客文章?

最佳答案

使用 XSD.exe 从提供的 XSD 生成类。它接缝每个文件都包含请求、响应和错误的 XSD,因此每个文件代表单个操作。像这样创建服务契约(Contract)

// ConfigXSDError, ConfigXSDRequests and ConfigXSDResponse are types generated by XSD 

// Message contracts are needed to avoid wrapping
[MessageContract(IsWrapped = false)]
public class ConfigResponse
{
[MessageBodyMember]
[XmlElement("response")]
public ConfigXSDResponse Response { get; set; }
}

[MessageContract(IsWrapped = false)]
public class ConfigRequest
{
[MessageBodyMember]
[XmlElement("request")]
public ConfigXSDRequest Request { get; set; }
}

// Other message contracts

// Service contract uses XmlSerializer instead of DataContractSerializer

[ServiceContract]
[XmlSerializerFormat(SupportFaults = true)]
public interface ICiscoRouter
{
[OperationContract]
[FaultContract(typeof(ConfigXSDError))]
ConfigResponse Config(ConfigRequest request);

// Other methods
}

使用ChannelFactory为服务创建代理。

关于.net - 从 .NET 使用 Cisco WSMA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3658385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com