我有一個覆蓋在設置項目文件中像這樣的web.config文件:AppHarbor Web.config文件轉換誤差
<applicationSettings>
<MvcApplication.Properties.Settings>
<setting name="FacebookUrlAuth" serializeAs="String">
<value>http://URL1.com</value>
</setting>
<setting name="GoogleUrlAuth" serializeAs="String">
<value>http://URL2.com</value>
</setting>
</MvcApplication.Properties.Settings>
</applicationSettings>
我有web.release.config是將這些人設置:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<applicationSettings>
<MvcApplication.Properties.Settings>
<setting name="FacebookUrlAuth" serializeAs="String" xdt:Locator="Match(name)" xdt:Transform="Replace">
<value>http://AlternativeUrl1.com</value>
</setting>
<setting name="GoogleUrlAuth" serializeAs="String" xdt:Locator="Match(name)" xdt:Transform="Replace">
<value>http://AlternativeUrl2.com</value>
</setting>
</MvcApplication.Properties.Settings>
</applicationSettings>
</configuration>
當我在發佈配置發佈解決方案,它工作正常(我的意思是隻有網址變得不同於web.config)
但是,當Appharbor發佈的應用程序,我得到一個運行時錯誤從帕格Ë我用@Settings.Default.FacebookUrlAuth
與以下細節:
無法識別的元素的 '設置'。 (D:\網站\ 45 \ 31968 \ 17022 \ 0x0001_PublishedWebsites \ MVC.Web \ web.config 73行)
當我評論所有轉換規則,AppHarbor從我的默認web.config中取得這些屬性,一切正常。 這是AppHarbor方面的問題嗎?
friism:你是絕對正確的!出於某種原因,Appharbor以錯誤的方式轉換了我的配置。請出來收回+1 – Anubis
我已經找到了麻煩。正如弗里斯特所說,然後刪除了他的解決方案:「你不能有多個設置元素,這個錯誤可能與轉換無關。」並提供瞭解釋的鏈接:http://blogs.msdn.com/b/tess/archive/2010/02/16/system-configuration-configurationerrosexception-unrecognized-element-setting-and-other-unrecognized-elements .aspx我已經從AppHarbor主機讀取了exactely web.config,並發現在轉換之後,這些設置是排隊的。所以,我認爲這是一個AppHarbor錯誤。 – Anubis