2012-01-30 36 views
6

無法通過ASP.NET發送電子郵件和發送電子郵件到我的網絡主機的一些幫助,被告知要修改我的安全設置,併發送一個鏈接:設置信任水平在web.config中

http://forums.asp.net/t/1111145.aspx/1

我讀過它有說,並試圖在web.config中設置<trust level="Full" originUrl="" />,但後來我得到的錯誤:

This configuration section cannot be used at this path. This happens when the site administrator has locked access to this section using <location allowOverride="false"> from an inherited configuration file.

我沒有設置任何其他web.config文件。

於是我又問了網絡主機,並問如果這是一個服務器設置,我無法改變,但我得到的迴應只是:

You'll need to specify a more specific path.

這是可愛的,但我不知道這意味着什麼!

做了一些更多的挖掘我想知道如果我必須設置一個單獨的trust文件,這是正確的嗎?

難道有人指出我設置我的信任級別的正確方法(我意識到「全部」可能是不正確的?),因爲我真的不明白我應該做什麼!

回答

7

信任級別記錄在這裏:http://msdn.microsoft.com/en-us/library/ie/wyts434y.aspx。在共享主機中,提供商會鎖定該設置,因此您無法在web.config中進行更改。如果您明確要求您的提供商允許您完全信任您的應用程序,並且他們回答「嗯?」,那麼您正在與一個沒有受過教育的人交談 - 要麼升級請求,要麼更改主持人。 「請充分信任地配置我的應用程序」應該足夠清楚。請注意,一旦他們瞭解您的請求,他們可能不願意這樣做。

此外,我不能確定發送郵件需要完全信任。發送郵件包括與SMTP服務器通信的能力,通常,網絡主機只允許訪問他們的郵件,並阻止其他所有郵件(用於防止垃圾郵件)。你不能說服他們爲你制定例外,但是如果你問「請告訴我使用哪個smtp和端口從我的asp.net應用程序發送電子郵件」,他們應該給你(否則,升級或更改主機)。實際上,你應該讓他們先幫助你發送郵件,然後才能得出結論:信任級別阻礙了它(現在,我很確定它沒有)。

而且,閱讀,請:https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem

+0

感謝。所以你說的是他們的回答比我意識到的更無助!提到你的觀點,我應該問他們如何通過他們的服務器發送郵件......實際上,我做到了!我給他們發了一些示例代碼,並被告知應該可以使用。然後我遇到了啓發我在這裏發佈的問題。我會再次給他們發郵件,要求提供更完整的回覆。 – 2012-01-30 20:36:24

+0

我很確定我有一個應用程序在共享託管與部分信託發送郵件。主機不太可能會給你完全的信任,因爲這會對其服務器和其上運行的其他應用程序造成風險;他們通常會利用這個機會來宣傳他們的專用服務器。在開始使用一些第三方郵件程序庫之前,使用.NET的類發送電子郵件(或者至少要測試它是否工作)(您可以在那裏找到示例代碼;只需要幾行代碼+少量web.config更改)。然後,如果發送郵件失敗,請在此處粘貼異常信息;我們會找出一些東西。 – 2012-01-30 22:23:48

+1

是的,大多數共享主機不支持完全信任,所以你需要檢查你的當前提供商。但是,如果您確實需要完全信任託管,我可以提供一個名稱HostForLife.eu。您可以在Microsoft網站上找到他們的網站。 :) – 2012-01-31 02:39:11

-1

試試這個:

public static void ConfirmMail(string emailTo) 

{ 
    try 
    { 

     MailMessage message = new MailMessage(); 
     message.Subject = "Account Registration From 91calls"; 
     message.From = new MailAddress(Convert.ToString("[email protected]"),"Admin"); 
     message.To.Add(emailTo); 
     message.BodyEncoding = System.Text.Encoding.UTF8; 
     StringBuilder sb = new StringBuilder(); 
     sb.Append("<html>"); 
     sb.Append("<Body>"); 
     sb.Append("<table cellpadding='0' cellspacing='0' width='100%' border='0'>"); 
     sb.Append("<tr><td align='center'><table cellpadding='0' cellspacing='0' width='100%' border='0'>"); 
     // sb.Append("<tr><td align='left'><asp:Image ID='imgLogo' runat='server' ImageUrl='http://supervau.w01.winhost.com/images/logo.png' />"); 
     sb.Append("</td></tr><tr><td>Hi, <br></td></tr><tr><td align='left'>You are successfylly resgistered with 91 calls.<br>"); 
     sb.Append("<br>Thank you for using, : http://www.91calls.com<br /><br>For questions or concerns regarding your account, please visit : http://www.91calls.com"); 
     sb.Append("</td></tr></table></td></tr></table>"); 
     sb.Append("</Body>"); 
     sb.Append("</html>"); 
     message.Body = sb.ToString(); 
     message.IsBodyHtml = true; 
     SmtpClient client = new SmtpClient(); 
     client.Send(message); 


    } 
    catch 
    { 
    } 

}