Asp联系页面在本地工作,但不在服务器上

我在网上找到了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。位于g:\ pleskvhosts \ myweburl \ httpdocs \ contact.aspx.cs中contact.btnSubmit_Click(Object sender,EventArgs e)的System.Net.Mail.SmtpClient..ctor(String host,Int32 port)上的SmtpClient.Initialize():第33行失败的操作是:Demand失败的第一个权限的类型是: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" + "Name:" + TheirName.Text + " 
Email - address :" + TheirEmail.Text + "
Comments :" + 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

   .....    

例如,如果您使用的是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 ,但有时您可以使用默认值,如果80不起作用,则为端口25

做这个…..

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