2011-12-06 51 views
2

我有一個WCF服務,它具有在WCF應用程序屬性編輯器(設置選項卡)中創建的設置。web.config applicationSettings值不從WCF服務中讀取

它在Settings.Designer.vb文件的MySettings類中創建瞭如下屬性。注意DefaultSettingValueAttribute被設置爲「這是舊值」。這是我對本地測試的價值。

<Global.System.Configuration.ApplicationScopedSettingAttribute(), _ 
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ 
Global.System.Configuration.DefaultSettingValueAttribute("This is the OLD value")> _ 
Public ReadOnly Property Information() As String 
    Get 
    Return CType(Me("Information"),String) 
    End Get 
End Property 

在生產服務器上,我更改了web.config文件,如下所示。 「NEW」值對於生產服務器很有用。它表示連接字符串或生產資源地址。

<applicationSettings>   
    <setting name="Information" serializeAs="String"> 
    <value>This is the NEW value</value> 
    </setting> 
</applicationSettings> 

的問題是重新啓動WCF服務(完全重新啓動服務器機),它永遠不會讀取新的值之後。它繼續使用在設計器文件中設置爲默認值的舊值。

我認爲這必須與文件權限有關,但我在事件日誌中沒有看到任何指示問題的內容。這就像WCF服務甚至沒有嘗試讀取web.config文件。我在Google上沒有發現任何此類問題,並且我已經用完了搜索字詞提示。

爲什麼服務不從web.config文件讀取設置值?

回答

2

您是否確定將SectionGroup添加到生產Web服務器的ConfigSections中?

它應該是這個樣子:

<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
    <section name="MyWCFService.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
</sectionGroup> 

和應用程序設置部分應該是這個樣子:

<applicationSettings> 
    <MyWCFService.My.MySettings> 
     <setting name="Information" serializeAs="String"> 
     <value>This is the NEW value</value> 
     </setting> 
    </MyWCFService.My.MySettings> 
    </applicationSettings> 
+0

現在是一個有趣的問題。我正要說「是的,Visual Studio補充說。」然後,我去了Web服務器,看到我注意到名稱空間不再正確。我糾正了命名空間和事情的作品!謝謝。 –