我有一个为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
有没有办法引用网站的根路径?
答案 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