我已經創建了一個新的Surface控制器用於我的Umbraco 7.1.8安裝。我的代碼如下:Log4Net無法寫入日誌
public class EnquiryController : SurfaceController
{
ILog Log = LogManager.GetLogger(
MethodBase.GetCurrentMethod().DeclaringType
);
[HttpPost]
public ActionResult Submit(EnquiryModel model)
{
if (!ModelState.IsValid)
return CurrentUmbracoPage();
// Create a regular expression to remove script tags
Regex regex = new Regex(@"<script(.+?)*</script>");
string request = regex.Replace(model.Message, string.Empty);
request = request + "<br/><br/>" + "Phone: " + model.Telephone + "<br/><br/>" + "Email: " + model.Email;
MailMessage message = new MailMessage();
message.From = new MailAddress(model.Email);
message.To.Add(new MailAddress("[email protected]"));
message.Subject = "New Website Enquiry - " + model.Name;
message.Body = request;
SmtpClient client = new SmtpClient();
try
{
client.Send(message);
TempData["success"] = true;
}
catch (Exception ex)
{
TempData["error"] = true;
Log.Debug("Custom Error - " + ex.Message);
return CurrentUmbracoPage();
}
return RedirectToCurrentUmbracoPage();
}
}
我的問題是我的代碼無法發送電子郵件,只需執行CurrentUmbracoPage()方法調用。
爲了解決這個問題並找出問題所在,我嘗試記錄使用Log4Net生成的異常,但是由於沒有任何內容寫入標準的Umbraco日誌,因此這似乎不起作用。
這是發生在一個活的服務器上。我已經使用Visual Studio 2013發佈了我的開發代碼,然後通過FTP將此發佈的站點上載到服務器,以確保將正確的SMTP detals輸入到Web.Config中。
關注我並可能導致此問題的一件事是,儘管實際上是項目的一部分,但此發佈過程似乎忽略了來自我的解決方案的/ Controllers和/ Models文件夾。這是一個問題還是這些編譯在.dll中?
對我來說似乎相當奇怪的是,控制器文件夾被省略,可能解釋爲什麼電子郵件沒有被髮送..
這應該從[tag:model-view-controller]重新標記爲[tag:asp.net-mvc] – PTuckley 2014-10-27 14:40:25