Ser*_*iko 3 xml powershell sharepoint web-config
如何system.serviceModel在web.config中添加一个部分(如果它尚不存在)?
之前:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
后:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<bindings>
<basicHttpBinding>
<binding name="ValidationServiceSoap" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport clientCredentialType="Ntlm" />
<message clientCredentialType="UserName" />
</security>
</binding>
</basicHttpBinding>
<bindings>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
在PowerShell中执行此操作并不算太糟糕:
$origXml = [xml]@'
<configuration>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
</configuration>
'@
$newXml = @'
<bindings>
<basicHttpBinding>
<binding name="ValidationServiceSoap" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport clientCredentialType="Ntlm" />
<message clientCredentialType="UserName" />
</security>
</binding>
</basicHttpBinding>
</bindings>
'@
if (!$origXml.configuration.'system.serviceModel'.bindings)
{
$tempXmlDoc = new-object System.Xml.XmlDocument
$tempXmlDoc.LoadXml($newXml)
$newNode = $origXml.ImportNode($tempXmlDoc.DocumentElement, $true)
$origXml.configuration.'system.serviceModel'.AppendChild($newNode)
}
Run Code Online (Sandbox Code Playgroud)
请注意,此方法仅适用,因为要注入的XML具有单个根元素<bindings>.
| 归档时间: |
|
| 查看次数: |
2658 次 |
| 最近记录: |