2011-06-11 39 views
-3

可能重複:
HttpContext.Current.Server null空使用Server.Mappath

我有我的ASP .NET解決方案三個項目:

  • 類庫
  • 網絡應用程序
  • 一個Windows服務

我有一個文件夾在我的Web應用程序與XML文件。來自類庫函數的XMLreader需要用這個XML文件填充。我添加了這個:

var reader = XmlReader.Create(HttpContext.Current.Server.MapPath("~/TestDevice/Data.xml"), settings); 

當這個函數被我們的應用程序調用時,它的工作原理。 當從Windows應用程序調用類庫的這個函數時,我在HttpContext.Current.Server上得到空引用,因爲它在Windows應用程序中不可用。雖然這對於Windows和Web應用程序都適用,但我不想給硬編碼路徑。我可以使用某些功能來訪問來自不同項目或server.mappath的備用文件的文件。請建議的解決方案

感謝

+0

第四次同一個用戶在兩天內提出的問題。 – 2011-06-11 01:12:00

+0

如果這確實是你問的問題是第四次,請費心學習格式代碼和列表。 – 2011-06-11 01:14:58

+1

停止問同樣的問題並回復您目前使用的http://stackoverflow.com/questions/6304532/httpcontext-current-server-null或http://計算器。com/questions/6310344/httpcontext-current-server-mappath-alternative-in-windows-application or http://stackoverflow.com/questions/6306992/file-path-using-c – keyboardP 2011-06-11 01:16:35

回答

0

最簡單的解決方案可能是路徑傳遞到XML文件插入功能,而不是使函數本身足夠聰明的它OUT-那麼你的Web應用程序可以使用的HttpContext方法,並且Winforms應用程序將使用常規路徑。 WinForms或Windows服務沒有相應的MapPath方法。

2

HttpContext.Current.Server.MapPath alternative in windows application

file path using C#

HttpContext.Current.Server null

問同樣的基本問題四個不同的時間是不會改變的事實,你不能使用一個Windows服務來訪問Web應用程序的路徑而網絡應用程序不會知道你的服務在哪裏。

使用配置文件來定義您的數據將被存儲並提供兩個相同的信息 - 或者使用一些其他的存儲空間來保存數據,如其中有一個發佈位置的數據庫。