I have a DLL that provides mail sending functionality to an asp.net application, this DLL reads its configuration from an xml file whose path is set in an app.config setting.
I ported the configuration into an applicationsettings section inside my web.config:
<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>
Everything works but I cannot find a way to specify a path relative to the webapp root, MailTemplatesConfigurationPath value is always relative to IIS root, so:
./_mail/MailTemplatesConfiguration.xml
becomes
c:\windows\system32\inetsrv\_mail\MailTemplatesConfiguration.xml
Is there any way to reference the root path of the web site?
If your issue is that you don’t want server.MapPath in the dll, have the function that uses this value accept another parameter for the rootPath which can be passed in from the calling code. The calling code, which is not in the dll, can use MapPath to get the rootPath value.