2013-06-04 103 views
1

幾個月前,我向Azure網站部署了一個應用程序,並且它按預期工作。昨天,在微軟發佈了一系列新功能之後,我注意到有一個選項可以從32位變成64位。我將網站配置從32位更改爲64位。除了當我嘗試使用標準SMTP .NET庫通過SendGrid發送電子郵件時,所有網站都能正常工作。SMTP在64位模式下無法在Azure網站上工作

這是個例外,我得到:

訪問被拒絕 「來源= 」系統「 詳細=」 System.Net.NetworkInformation.NetworkInformationException(0X80004005):訪問是在System.Net.NetworkInformation否認System.Net.Net.Net.Net.Information.SystemIPGlobalProperties.GetFixedInfo()在System.Net.Net.Net.Net.NetworkInformation.SystemIPGlobalProperties.get_FixedInfo()System.Net.Mail.SmtpClient.Initialize()System.Net.Mail.SmtpClient ..()

這是代碼:

var toAddress = new MailAddress(to, username); 
using (var smtp = new SmtpClient()) 
using (var message = new MailMessage() {Subject = subject, IsBodyHtml = true}) 
{ 
    message.To.Add(toAddress); 
    message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(body, null, MediaTypeNames.Text.Html)); 
    smtp.Send(message); 
} 

Web.config文件:

<system.net> 
    <mailSettings> 
    <smtp from="[email protected]"> 
     <network host="smtp.sendgrid.net" port="587" userName="[email protected]" password="xxxxx" /> 
    </smtp> 
    </mailSettings> 
</system.net> 

我的開發環境配置爲64位和應用程序能夠發送電子郵件。 任何想法爲什麼它在Azure 64位模式下失敗?

謝謝!

+1

您是否將Cloud Service部署在'Full Trust'或'Windows Azure Partial Trust'中? – astaykov

+0

我正在使用網站進行部署。這是默認的完全信任。 – tmorell

+0

我有同樣的問題。切換回32位固定它。有沒有人有解釋的差異? – CodeGrue

回答

0

我遇到過這個問題,發現我在web.config文件和Azure應用程序設置中存在衝突的值。我不確定這些工作在Azure中是如何工作的,因爲他們似乎沒有直接映射到web.config應用程序設置。刪除所有Azure應用程序設置(並保留web.config)後,通過gmail發送的電子郵件沒有問題。

+0

感謝您的評論。我會檢查我的設置,以驗證是否有不合適的地方。 – tmorell

+0

我結束了移動到一個Web角色,它在64位上工作正常。我停止研究網站的可能解決方案。 – tmorell