2012-08-30 48 views
0

我在我們的ISP託管我的ASP.NET網站。每當我想從我的網站發送一封電子郵件,我得到以下錯誤:ASP.NET web.config從網站發送電子郵件時的SMTP安全異常

System.Security.SecurityException: Request for the permission of type System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' failed."

我也收到以下錯誤,這是原來的錯誤,我曾試圖解決:

Request for ConfigurationPermission failed while attempting to access configuration section system.net/mailSettings/smtp'. To allow all callers to access the data for this section, set section attribute 'requirePermission' equal 'false' in the configuration file where this section is declared.

我試圖添加一個配置節並設置requirePermission="false",但它不工作。或許這種類型是錯誤的?一切工作正常本地。任何幫助從我的web.config獲得讀取我的SMTP詳細信息的權限將是很好的。

<configSections> 
    <sectionGroup name="mailSettings"> 
    <section name="smtp" type="System.Net.Configuration.SmtpSection" requirePermission="false"/> 
    </sectionGroup>   
</configSections> 
<system.net> 
    <mailSettings> 
    <smtp from="..."> 
     <network host="..." defaultCredentials="false" userName="..." password="..." /> 
    </smtp> 
    </mailSettings> 
</system.net> 
+0

是否在本地機器上運行?那麼可能你的託管公司有一個自定義的信任級別,它不允許設置mailSettings。你最好聯繫他們來修復這個問題。 – Pbirkoff

+0

是的,本地完美。我也懷疑,是不是有辦法繞過這個安全問題?例如設置一個部分並設置requirePermission = false?如果是這樣,任何意見,如果我實施它的方式是正確的?懷疑我可以問託管公司改變信任級別:(謝謝 – Deon

+1

它看起來像你正確實施它,基本上是因爲它在本地工作,我不認爲你可以繞過它,否則他們不會稱之爲安全;)我也懷疑意願是否會改變信任級別,但有時他們有另一種方法來實現它。聯繫他們似乎是最好的選擇。祝你好運!順便說一句,有時可以從託管公司接收信任配置,所以你可以在本地正確測試它。 – Pbirkoff

回答

0

要查看system.net config部分的工作示例,請在您的計算機上打開您的目標版本的machine.config。在ASP .NET 4.0,這是它的外觀在我machine.config中