簡體   English   中英

Asp 聯系頁面在本地工作,但不在服務器上

[英]Asp contact page works locally but not on a server

我在網上找到了一個asp網站和一個asp中的聯系表格。 它在本地機器上完美運行。

我將它添加到我的服務器以對其進行實時測試,但它不起作用。 我收到了顯示錯誤的顯示消息,它說:

System.Security.SecurityException:請求類型為“System.Net.Mail.SmtpPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的權限失敗。 在 System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) 在 System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) 在 System.Security.CodeAccessPermission.Demand() 在 System.Net.Mail。 SmtpClient.Initialize() at System.Net.Mail.SmtpClient..ctor(String host, Int32 port) at contact.btnSubmit_Click(Object sender, EventArgs e) in g:\\pleskvhosts\\myweburl\\httpdocs\\contact.aspx.cs:第 33 行失敗的操作是:需求 失敗的第一個權限的類型是:System.Net.Mail.SmtpPermission 失敗的程序集的區域是:MyComputer

有誰知道這是什么意思?

我的 contact.aspx.cs 代碼是

protected void btnSubmit_Click(object sender, EventArgs e)
{
    try
    {
        MailMessage mailMsg = new MailMessage();

        mailMsg.From = new MailAddress(TheirEmail.Text);

        mailMsg.To.Add("myemailaddress@gmail.com");

        mailMsg.IsBodyHtml = true;

        mailMsg.Subject = "Contact Question!";

        mailMsg.Body = "Contact Details" + "<b>Name:</b>" + TheirName.Text + " <br/> <b>Email - address :</b>" + TheirEmail.Text + "<br/> <b>Comments :</b>" + Comments.Text;

        SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);

        mailMsg.Priority = MailPriority.Normal;

        smtp.Credentials = new System.Net.NetworkCredential("myemailaddress@gmail.com", "mypassword");

        smtp.Timeout = 25000;

        smtp.EnableSsl = true;

        smtp.Send(mailMsg);

        TheirEmail.Text = "";
        TheirName.Text = "";
        Comments.Text = "";


        DisplayMessage.Text = "Thank you. Your contact details and feed back has been submitted.";
        DisplayMessage.Visible = true;
    }

    catch (Exception ex)
    {
        DisplayMessage.Text = ex.ToString();
        DisplayMessage.Visible = true;
    }

確保您的Web.Config文件的trust level設置為full

<configuration>
  <system.web>
    .....
    <trust level="Full" originUrl=""/>
  </system.web>
</configuration>

例如,如果您使用GoDaddy ,則必須在System.Net.Mail.SmtpClient變量中設置以下內容(例如 *smtp *):

SmtpClient smtp = new SmtpClient("relay-hosting.secureserver.net", 25);
smtp.EnableSsl = false; // check if your ISP supports SSL

您還需要在此處按照此頁面在GoDaddy上正確配置電子郵件。

在某些情況下,如果您無法獲得full trust ,則較低的安全級別將不允許您指定 SMTP 端口。 您的 ISP 指定端口80 ,但有時您可以使用默認端口 25如果 80 不起作用。

做這個.....

mm.IsBodyHtml = false;
SmtpClient smtp = new SmtpClient();
smtp.Host = relay-hosting.secureserver.net;
smtp.EnableSsl = false;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM