2010-08-02 66 views
0

我會盡力解釋我的問題。使用2個不同項目的appSettings問題

我有2個分別在Visual Studio中相同應用程序的一部分單獨的項目。其中一個是服務器端,另一個是客戶端。

客戶端片面項目使用名爲XMLFileName一個關鍵的appSettings被用於從XML檢索數據並填充與檢索到的信息的數據集。在這個客戶端項目中,我有一個方法在數據集中執行一些檢查。

當我嘗試從服務器端項目調用該方法時,我無法獲取數據集填充,因爲XMLFileName未被服務器端項目讀取,因爲它未在其應用程序設置中定義。如果我在服務器端項目上對文件名字符串進行硬編碼,它將無法找到它,因爲它看起來在不同的文件夾中。

我應該如何着手呢?我清楚了嗎?

感謝, 伊頓B.

回答

0

我可能完全不瞭解問題,但聽起來您有兩種不同的應用程序(客戶端和服務器)使用相同的方法(例如GetXmlFile())來檢索相同的文件(File.xml)。如果是這種情況,那麼您可能需要將XML文件放在可以通過UNC路徑訪問的共享驅動器上(例如`\ myclient \ XMLFiles \ File.xml')。

如果情況如此,您是否可以將方法GetXmlFile()更改爲使用UNC路徑訪問該文件,並將UNC路徑和文件名存儲在appSettings中?

如果我錯了解情況,請讓我知道,我會相應地更新我的答案。

希望這會有所幫助。

+0

我希望服務器能夠在不使用服務器的appSettings的情況下調用客戶端的方法。目前,如果我通過服務器調用方法,並查看ConfigurationManager,則表明它正在讀取web.config設置,而不是客戶端中的app.config。我認爲這是因爲該方法正在從服務器調用。 你認爲我應該如何解決這個問題? – 2010-08-03 15:40:30

+0

Web應用程序使用web.config設置,因爲Web應用程序使用web.config,因爲它是配置設置的起始點(默認情況下)。我認爲,如果你希望客戶端和服務器都讀取同一個文件,你應該將讀取文件的方法從客戶端代碼中抽象出來,將它添加到第三個項目(.DLL類庫)中,將這個項目同時包含在客戶端和服務器項目,並讓每個進程(客戶端和服務器)根據各自的appSettings或web.config配置設置確定XML文件的位置。 – 2010-08-03 16:43:28

+0

我認爲,當控制傳遞給客戶端時,其appSettings將適用。現在我知道假設從來不是一個好主意..壞的方法。現在我已經跳過了這個任務,因爲對於我的新手開發技能來說,這看起來太令人生畏了。你說什麼是有道理的,所以我會把它標記爲我的答案。謝謝! – 2010-08-03 17:44:15

1

爲什麼不添加相同的設置服務器端項目?我錯過了什麼嗎?

+0

是的,我可能沒有足夠好地解釋自己。 XML文件包含的數據轉化爲DTO以便傳輸到數據庫中。這個XML文件位於客戶端機器上。 如果我添加XMLFileName關鍵服務器端項目的appSettings,例如與價值「File.xml」,它試圖在某處讀取文件該項目的文件夾,而不是客戶端的一個內。 – 2010-08-03 00:28:36

+0

@Eton B:所以你希望你的服務器能夠訪問客戶端的硬盤並從那裏讀取文件? – 2010-08-03 05:17:02

+0

並不完全,我希望服務器能夠在不使用服務器的appSettings的情況下調用客戶端的方法。 此刻,如果我叫通過服務器的方法,我看ConfigurationManager中,這表明它的讀取web.config設置,而不是在客戶端的app.config。我認爲這是因爲該方法正在從服務器調用。 – 2010-08-03 15:39:26