服務器計算機:文件分享服務器6
客戶機:Windows XP中,其中的DocuShare客戶端6,文件分享的Outlook客戶端3,MS Outlook 2007和我們C#應用程序已安裝。
我們有一個C#應用程序使用DocuShare API從DocuShare服務器下載郵件消息。
應用程序成功將docushare郵件作爲MSG文件下載。但是,當郵件附件名稱較長(在我的情況下附件文件名是 「新的Tzunami Outlook附件提取器用戶指南20100902.docx」)時,應用程序在下載時拋出Windows套接字錯誤。如果附件文件名稱較短,則會成功下載郵件。
下面是代碼:
private void btnDownloadMails_Click(object sender, EventArgs e)
{
MailArgument mailArg = new MailArgument();
mailArg.server = textServer.Text;
mailArg.user = textUser.Text;
mailArg.password = textPwd.Text;
DownloadMailAsMsg(mailArg);
}
void DownloadMailAsMsg(object s)
{
MailArgument mailArg = s as MailArgument;
long status = 0;
DSServerMap.Server dsserver = new DSServerMap.Server();
if (!SelectMappedServer(ref dsserver, mailArg.server))
return;
dsserver.DocuShareAddress = mailArg.server;
dsserver.UserName = mailArg.user;
dsserver.Password = mailArg.password;
dsserver.Domain = "DocuShare";
status = dsserver.Logon();
if (status == 0)
{
IItemObj objParentItem;
string[] emailHan = { "MailMessage-2919", "MailMessage-2924", "MailMessage-2925", "MailMessage-2926", "MailMessage-2926", "MailMessage-15", "MailMessage-30", "MailMessage-31" };
foreach (string handnum in emailHan)
{
objParentItem = (IItemObj)dsserver.CreateObject(handnum);
DSGATEWAYLib.IGatewayHandler gateway = (DSGATEWAYLib.IGatewayHandler)dsserver.Open();
objParentItem.AttachGateway(gateway, true);
objParentItem.Name = @"D:\emtest\" + handnum + ".msg";
int flag = objParentItem.DSDownload(0);
}
}
}
哪裏卡住位於行:INT標誌= objParentItem.DSDownload(0);同時下載名爲「New Tzunami Outlook附件提取器用戶指南20100902.docx」的附件文件的電子郵件。 爲了檢查,我們將附件文件名稱修剪爲「ANew Tzunami OutAttachmen 01.docx」,但我們仍然得到相同的錯誤。
代碼objParentItem.DSDownload(0)-300返回值,並在同一時間的DocuShare錯誤對話框與彈出以下消息
「Winsock錯誤123」
你能指定錯誤/異常嗎? – kyndigs 2010-10-21 10:21:10
我已經更新了這個問題。請看那裏的例外。謝謝。 – Prakash 2010-10-21 11:54:08
挖掘北斗,在下載電子郵件時,api也嘗試下載它的附件,但DocuShare錯誤對話框窗口顯示了不同的附件文件名,用0x09 ie選項卡替換了最後一個空格字符。 – Prakash 2010-10-21 12:21:23