2012-02-14 55 views
1

我有一個簡單的Spring.NET演示,我試圖共享一個共享的object file,它將駐留在共享驅動器上。如果我將UNC path作爲資源文件傳遞給構造函數,這將起作用,但如果使用<import resource構造,則會將其解釋爲相對的,但不受支持。有沒有辦法使用UNC路徑的導入語句?無法從Spring.NET中的UNC路徑導入?

作品:

<context> 
    <resource uri="config://spring/objects"/> 
    <resource uri="\\server\share\folder\SpringConfig.xml"/> 
</context> 

不起作用:

<import resource="\\server\share\folder\SpringConfig.xml"></import> 

錯誤消息:

System.Configuration.ConfigurationErrorsException:錯誤創建上下文 'spring.root':ConfigSectionResource不支持相關資源。請使用完全限定的資源名稱。 ---> Spring.Objects.Factory.ObjectDefinitionStoreException:註冊'config [C:\ Users \ user \ documents \ visual studio 2010 \ Projects \ SpringExample \ SpringExample \ bin \ Debug \ SpringExample.vshost.exe.Config #spring/objects] at line 1':Failed parsing element ---> System.NotSupportedException:ConfigSectionResource不支持相關資源。請使用完全限定的資源名稱。

回答

3

使用完全合格的資源字符串,並使用正斜槓遍及:

<objects xmlns="http://www.springframework.net"> 
    <import resource="file:////server/share/folder/SpringConfig.xml" /> 
</objects> 

需要注意的是文件:協議標識符後跟斜線,兩者屬於協議和兩個服務器的位置。 在我的機器上工作:)。這也適用於:

<objects xmlns="http://www.springframework.net"> 
    <import resource="file://\\server\share\folder\SpringConfig.xml" /> 
</objects> 
+0

感謝您的回答,但請參閱我的編輯。這個問題實際上是關於' 2012-02-15 13:39:14

+0

相應地更新了我的答案;我剛剛測試過,並且我的答案中的兩個配置都沒有錯誤地加載。 – Marijn 2012-02-15 14:28:33

+0

@ C.羅斯啊,終於重現你的錯誤......你正在配置這個應用程序配置文件。我不認爲這是相關的,但顯然是這樣。 – Marijn 2012-02-15 14:56:26

0

我真的不確定是否支持UNC路徑,但是如果您想要一個完全合格的文件路徑,則需要使用<resource uri="file://c:/folder1/folder2/MyConfig.xml" /> IIRC。

+0

ü應該有一個向下票:P FileSystemResourceTests是你的朋友! – bbaia 2012-02-15 07:35:26

2

嗯.. 這應該工作。我不明白的是爲什麼ConfigSectionResource拋出異常。 默認情況下,應在非Web應用程序中使用FileSystemResource。

您使用的是什麼版本的Spring.NET?你使用的是CodeCondig擴展嗎?

無論如何,這應該工作:

<resource uri="file://\\server\share\folder\SpringConfig.xml"/> 
+0

感謝您的答案,但請參閱我的編輯(我有格式問題)。 – 2012-02-15 12:40:28

+0

我在導入語句中使用了這種格式。我之前嘗試過所有正斜槓,但都失敗了。 – 2012-02-15 13:40:48