Silverlight到Web Service不工作
本文关键字:工作 Service Web Silverlight | 更新日期: 2023-09-27 18:12:04
我创建了一个简单的Silverlight web应用程序表单来测试我为一个更大的项目设置的web服务。这个表单基本上是包含First Name、Last Name和Middle Name的文本框,单击按钮后,代码被传递到服务器上的web服务,服务器将它们打印成pdf格式,保存到磁盘,然后通过电子邮件发送。我写了所有的代码,没有出现任何错误,但它不能工作。没有文件被保存,没有电子邮件被发送。下面是mainpage . example .cs中的代码:
using System;
using System.Collections.Generic;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ServiceModel;
using ExampleSilverlightApp.ServiceReference1;
namespace ExampleSilverlightApp
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
ServiceReference1.newpdfRequestBody proxy = new ServiceReference1.newpdfRequestBody();
proxy._1_FirstName = textBox1.Text;
proxy._1_lastName = textBox2.Text;
proxy._1_middlename = textBox3.Text;
}
}
}
下面是我的web服务的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Text;
using System.IO;
using System.Net.Mail;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ExampleSilverlightApp.Web
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class MyWebService : System.Web.Services.WebService
{
[WebMethod]
public void newpdf(string _1_FirstName, string _1_lastName, string _1_middlename)
{
string filename = @"C:'Temp'" + _1_FirstName + _1_lastName + ".pdf";
iTextSharp.text.Document d = new iTextSharp.text.Document(PageSize.A4, 72, 72, 172, 72);
PdfWriter.GetInstance(d, new FileStream(filename, FileMode.Create));
d.Open();
d.Add(new Paragraph(string.Format("First Name:", _1_FirstName)));
d.Add(new Paragraph(string.Format("Last Name:", _1_lastName)));
d.Add(new Paragraph(string.Format("Middle Name:", _1_middlename)));
d.Close();
try
{
MailAddress SendFrom = new MailAddress("t@hotmail.com");
MailAddress SendTo = new MailAddress("tg@gmail.com");
MailMessage MyMessage = new MailMessage(SendFrom, SendTo);
MyMessage.Subject = "new test";
MyMessage.Body = "heres a new test!";
Attachment attachfile = new Attachment(filename);
MyMessage.Attachments.Add(attachfile);
SmtpClient emailClient = new SmtpClient("smtp.live.com");
emailClient.Send(MyMessage);
}
catch (FileNotFoundException)
{
Console.WriteLine("File Lost!");
}
}
}
}
我不知道我的设置有什么问题
- 从方法的开头开始"try/catch"块。可能是服务器上写权限错误。
- 尝试其他方法。您可以在内存中创建PDF文件,然后将其作为电子邮件发送。在这种情况下,您的程序不需要服务器上的特殊权限。更多信息:[^]