I am getting this error message when I run the code below:
Error Message:
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1729: 'EmailReader.Pop3Client' does not contain a constructor that takes 0 arguments
Source Error:
Line 148: private static object @__fileDependencies;
Line 149:
Line 150: [System.Diagnostics.DebuggerNonUserCodeAttribute()]
Line 151: public pop3client_aspx() {
Line 152: string[] dependencies;
Home.aspx.cs code:
protected void Button1_Click(object sender, EventArgs e)
{
Session["email"] = txt_email.Text;
Session["pwd"] = txt_password.Text;
Response.Redirect("Pop3Client.aspx");
}
When I step through the code, the breakpoint in Pop3Client.aspx.cs page_load event does not get executed. Any ideas how to resolve this ?
Pop3Client.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
int page = 1;
if (Request.QueryString["page"] == null)
{
Response.Redirect("Pop3Client.aspx?page=1");
Response.Flush();
Response.End();
}
else
page = Convert.ToInt32(Request.QueryString["page"]);
try
{
Email = Session["email"].ToString();
Password = Session["pwd"].ToString();
}
catch (Exception ex)
{
Response.Redirect("Home.aspx");
}
int totalEmails;
List<Email> emails;
string emailAddress;
using (EmailReader.Pop3Client client = new EmailReader.Pop3Client(Host, Port, Email, Password, true))
{
emailAddress = client.Email;
client.Connect();
totalEmails = client.GetEmailCount();
emails = client.FetchEmailList(((page - 1) * NoOfEmailsPerPage) + 1, NoOfEmailsPerPage);
}
int totalPages;
int mod = totalEmails % NoOfEmailsPerPage;
if (mod == 0)
totalPages = totalEmails / NoOfEmailsPerPage;
else
totalPages = ((totalEmails - mod) / NoOfEmailsPerPage) + 1;
for (int i = 0; i < emails.Count; i++)
{
Email email = emails[i];
int emailId = ((page - 1) * NoOfEmailsPerPage) + i + 1;
TableCell noCell = new TableCell();
noCell.CssClass = "emails-table-cell";
noCell.Text = Convert.ToString(emailId);
TableCell fromCell = new TableCell();
fromCell.CssClass = "emails-table-cell";
fromCell.Text = email.From;
TableCell subjectCell = new TableCell();
subjectCell.CssClass = "emails-table-cell";
subjectCell.Style["width"] = "300px";
subjectCell.Text = String.Format(DisplayEmailLink, emailId, email.Subject);
TableCell dateCell = new TableCell();
dateCell.CssClass = "emails-table-cell";
if (email.UtcDateTime != DateTime.MinValue)
dateCell.Text = email.UtcDateTime.ToString();
TableRow emailRow = new TableRow();
emailRow.Cells.Add(noCell);
emailRow.Cells.Add(fromCell);
emailRow.Cells.Add(subjectCell);
emailRow.Cells.Add(dateCell);
EmailsTable.Rows.AddAt(2 + i, emailRow);
}
if (totalPages > 1)
{
if (page > 1)
PreviousPageLiteral.Text = String.Format(SelfLink, page - 1, "Previous Page");
if (page > 0 && page < totalPages)
NextPageLiteral.Text = String.Format(SelfLink, page + 1, "Next Page");
}
EmailFromLiteral.Text = Convert.ToString(((page - 1) * NoOfEmailsPerPage) + 1);
EmailToLiteral.Text = Convert.ToString(page * NoOfEmailsPerPage);
EmailTotalLiteral.Text = Convert.ToString(totalEmails);
EmailLiteral.Text = emailAddress;
}
You appear to have added a contructor with a parameter to your Pop3Client
codebehind class. This means that your class no longer contains a parameterless constructor. ASP.NET requires such a constructor to exist, for when your page is compiled when it is first loaded.
There's no reason to have a constructor in an ASP.NET page's codebehind, so you should probably take it out, but adding a parameterless constructor should also work.
The error is stating that somewhere you have a new EmailReader.Pop3Client()
. The code you have shown does not have that error.
So the offending code must somewhere else.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.