我有一个简单的Spring.NET演示,我正在尝试拥有一个驻留在共享驱动器上的共享object file。如果我将UNC path作为资源文件传递给构造函数,这是有效的,但如果使用<import resource
构造,则将其解释为相对,这是不受支持的。有没有办法可以将import语句与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不支持相关资源。请使用完全限定的资源名称。 ---&GT; Spring.Objects.Factory.ObjectDefinitionStoreException:注册'config [C:\ Users \ user \ documents \ visual studio 2010 \ Projects \ SpringExample \ SpringExample \ bin \ Debug \ SpringExample.vshost.exe.Config#spring / objects中定义的对象时出错]在第1行':解析元素失败 ---&GT; System.NotSupportedException:ConfigSectionResource不支持相关资源。请使用完全限定的资源名称。
答案 0 :(得分: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>
答案 1 :(得分:2)
嗯.. 这应该工作。我不明白的是ConfigSectionResource抛出异常的原因。 默认情况下,应在非Web应用程序中使用FileSystemResource。
您使用的是什么版本的Spring.NET?你在使用CodeCondig扩展吗?
无论如何,这应该有效:
<resource uri="file://\\server\share\folder\SpringConfig.xml"/>
答案 2 :(得分:0)
老实说,我不确定是否支持UNC路径,但是如果你想要一个完全限定的文件路径,你需要使用<resource uri="file://c:/folder1/folder2/MyConfig.xml" />
IIRC。