【发布时间】:2014-10-20 16:08:35
【问题描述】:
我正在处理一个场景,我需要将保存在隔离存储文件中的日志从 wp8 应用程序的按钮单击事件发送到电子邮件。这就是我打算这样做的方式,
private void BtnGetLogs_OnClick(object sender, RoutedEventArgs e)
{
try
{
var isoStore = IsolatedStorageFile.GetUserStoreForApplication();
//Check if the isolated file exists
if (isoStore.FileExists(LogFileName))
{
Debug.WriteLine("The file exists!");
// Open the filestream to read the file
var isoStream = new IsolatedStorageFileStream(LogFileName, FileMode.Open, isoStore);
var reader = new StreamReader(isoStream);
string text = reader.ReadToEnd();
SendLogsToEmail(text.Substring(length));
}
这是我发送电子邮件的功能,
private void SendLogsToEmail(string body)
{
var emailComposeTask = new EmailComposeTask();
{
emailComposeTask.Subject = "Log file to mail";
emailComposeTask.Body = body;
emailComposeTask.To = "sample@gmail.com";
};
emailComposeTask.Show();
}
我也想介绍一下这个问题的背景。这纯粹是一个 windows phone 8.0 项目,所以我无法发送任何附件。这就是我试图读取所有文件内容并通过邮件发送的原因。请注意,这是我正在处理的事情的解决方案。这是一个边缘情况,由于 OEM 安全问题,我无法从 IsoStoreSpy 或任何其他工具获取日志。因此,在应用程序本身中,我有一个按钮单击事件,它读取隔离的存储文件并向指定用户发送邮件。
问题来了,
我在emailComposeTask.Show(); 收到 ArgumentOutOfRangeException,错误消息是,
Specified argument was out of the range of valid values.
Parameter name: The size of input should not exceed 64K.
日志文件实际上是一个相当大的文件。这个问题有优雅的解决方案吗?
【问题讨论】:
标签: c# windows windows-phone-8 windows-phone