我有一个 MDT 部署,根据网络位置执行的操作略有不同。从其中一个位置,我需要调用两个 Web 服务。我最初失败的尝试是:
[Settings]
Priority=DefaultGateway
[DefaultGateway]
10.0.0.1=LOCATION_A
10.100.0.1=LOCATION_B
[LOCATION_A]
Subsection=WebService1
Subsection=WebService2
[WebService1]
WebService=http://contoso.com/webservice1
[WebService2]
WebService=http://contoso.com/webservice2
我很快发现这行不通,因为一个部分只能有一个子部分。所以我能想到的最好的办法是让一个 webservice 调用另一个。这可行,但现在随着 webservice 的发展和有其他调用者,我必须维护某些服务的多个副本(即链接的和非链接的)。例如,
[Settings]
Priority=DefaultGateway
[DefaultGateway]
10.0.0.1=LOCATION_A
10.100.0.1=LOCATION_B
[LOCATION_A]
Subsection=WebService1AndWebService2
[WebService1]
WebService=http://contoso.com/webservice1
[WebService2]
WebService=http://contoso.com/webservice2
[WebService1AndWebService2]
WebService=http://contoso.com/webservice1
Subsection=WebService2
所以我现在有两个地方需要维护 WebService1 的 url、参数等。
CustomSettings.ini 中是否有更好的方法?我是否应该从任务序列中手动调用 Web 服务,而不是尝试从 CustomSettings.ini 中将其删除?
答案1
找到了更好的方法。这样您就可以轻松地启用/禁用要从不同的 DefaultGateways 调用的 Web 服务,但您无法自定义它们之间的不同顺序。
[Settings]
Priority=DefaultGateway,FLAG_WebService1,FLAG_WebService2
Properties=FLAG_WebService1,FLAG_WebService2
[DefaultGateway]
10.0.0.1=LOCATION_A
10.100.0.1=LOCATION_B
[LOCATION_A]
FLAG_WebService1=FLAG_YES_WebService1
FLAG_WebService2=FLAG_YES_WebService2
[FLAG_YES_WebService1]
WebService=http://contoso.com/webservice1
[FLAG_YES_WebService2]
WebService=http://contoso.com/webservice2