我在ASP.Net WCF .Net Framework 4.0上有一個web.config,并且我根據構建環境進行了轉換。
問題是,我在system.serviceModel部分中有一個診斷部分。在基本的web.config中,這部分是空的:
<diagnostics></diagnostics>
然后在我的轉換上,我們應用包含命名空間的過濾器,就像這樣:
<diagnostics performanceCounters="All" xdt。 Transform="Replace">
< messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel=maxMessagesToLog="300000" maxSizeOfMessageToLog="200000000">
<filters>
<add xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www. w3.org/2005/08/addressing">/s:Envelope/s:Header/a:Action[contains(.,'IMyService')]</add>/span>
</filters>/span>
</messageLogging>/span>
</diagnostics>/span>
當轉換被應用時(xdt:Transform="Replace"),我得到這樣的結果:
<diagnostics performanceCounters="All">
< messageLogging logEntireMessage="true" logMalformedMessages="true""true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true"
maxMessagesToLog="300000" maxSizeOfMessageToLog="200000000">
<filters>/span>
<add>/s:Envelope/s:Header/a:Action[contains(.,'IMyService')]</add>/span>
</filters>/span>
</messageLogging>/span>
</diagnostics>/span>
這導致web.config出現Xml錯誤,無法正常作業。
因此,我們的目標是,在轉換之后,命名空間宣告將出現在每個 "添加 "元素上。我已經嘗試在配置級別上宣告命名空間,但是沒有成功......
在轉換之后,這就是我們的目標。
繼續,這是當前過濾器上的輸出:
<add>/s。 Envelope/s:Header/a:Action[contains( . ,'IMyService')]</add>/span>
而我們希望它是這樣的:
<add xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3. org/2005/08/addressing">/s:Envelope/s:Header/a:Action[contains( . ,'IMyService')]</add>/span>
我怎樣才能克服這個問題?
uj5u.com熱心網友回復:
我無法找到合適的解決方案,甚至之前宣告命名空間也沒有用。
我們最終用整個 web.config 來代替轉換,然后在發布時挑選合適的,并假定它是正確的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/316168.html
標籤:
上一篇:限制一個模板引數只接受std::vector和std::list的C 20概念。
下一篇:ReactJS未處理的拒絕(TypeError):item.persistVariablesLimit.trim不是一個函式
