来自web.config中的applicationsettings的相对路径

时间:2011-09-01 14:54:06

标签: asp.net dll iis-7 web-config

我有一个为asp.net应用程序提供邮件发送功能的DLL,这个DLL从xml文件中读取其配置,该文件的路径是在app.config设置中设置的。

我将配置移植到web.config中的applicationsettings部分:

  <applicationSettings>
      <MyNamespace.MailLibrary.Properties.Settings>
        <setting name="MailTemplatesConfigurationPath" serializeAs="String">
          <value>**./_mail/MailTemplatesConfiguration.xml**</value>
        </setting>
        <setting name="SenderAddress" serializeAs="String">
          <value>noreply@mydomain.com</value>
        </setting>
      </MyNamespace.MailLibrary.Properties.Settings>
  </applicationSettings>

一切正常但我找不到指定相对于webapp根的路径的方法,MailTemplatesConfigurationPath值总是相对于IIS root,所以:

./_mail/MailTemplatesConfiguration.xml

成为

c:\windows\system32\inetsrv\_mail\MailTemplatesConfiguration.xml

有没有办法引用网站的根路径?

2 个答案:

答案 0 :(得分:2)

如果您的问题是您不想在dll中使用server.MapPath,请使用此值的函数接受rootPath的另一个参数,该参数可以从调用代码传入。调用代码(不在dll中)可以使用MapPath获取rootPath值。

答案 1 :(得分:0)

试试这个:

<value>**~/_mail/MailTemplatesConfiguration.xml**</value>

此外,您可能会发现以下链接有用: http://msdn.microsoft.com/en-us/library/ms178116.aspx