我似乎被卡住了。我有一個asp.net mvc 4應用程序,我想從服務類發送電子郵件。該服務類位於與解決方案中的mvc項目分開的C#庫項目中。我想將電子郵件配置設置爲從配置文件中調用的單獨文件。以下內容應該放在mvc項目的web.config中,還是在服務項目中創建一個app.config文件?C#ASP.NET MVC從配置文件訪問SMTP設置
<system.net>
<mailSettings>
<smtp configSource="MailSettings.config" />
</mailSettings>
</system.net>
然後,我有這個叫做MailSettings.config一個單獨的文件:
<smtp from="[email protected]">
<network host="smtp.server.com" port="587" userName="[email protected]" password="password" enableSsl="true" />
</smtp>
我曾嘗試創建僅在system.net工具和服務項目的app.config文件,但郵件設置總是空當我嘗試:
MailSettingsSectionGroup settings = (MailSettingsSectionGroup)ConfigurationManager.GetSection("system.net/mailSettings");
SmtpClient SmtpServer = new SmtpClient(settings.Smtp.Network.Host); //get null exception for settings.Smtp.Network.Host)
而且,我已經試過,包括app.config文件的郵件設置,以排除具有MailSettings.config文件是這一問題,仍生成一個空指針。
我嘗試的例子,用於從web.config文件訪問它像這樣:
Configuration configurationFile = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
MailSettingsSectionGroup mailSettings = configurationFile.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup;
在服務類雖然WebConfigurationManager
是斷章取義等是Request.ApplicationPath
。所以如果我必須從web.config文件中獲取它,我是否必須將http請求對象傳遞給服務類?這似乎是一個壞主意。