程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c#調用com異常-C#調用COM組件異常捕獲問題

c#調用com異常-C#調用COM組件異常捕獲問題

編輯:編程綜合問答
C#調用COM組件異常捕獲問題

C#使用CDO組件抓取url保存為mht文件;方法如下:
private static bool SaveUrlToMht(string htmlUrl, string filePath)
{
CDO.Message message = new CDO.MessageClass();
CDO.Configuration cfg = new CDO.Configuration();
ADODB.Stream stream = null;
string _CharSet = "utf-8";
try
{
message.Configuration = cfg;
message.MDNRequested = false;
message.MimeFormatted = true;
message.CreateMHTMLBody(
htmlUrl,
CDO.CdoMHTMLFlags.cdoSuppressNone,
null,
null
);
stream = message.GetStream();
stream.Charset = _CharSet;
stream.SaveToFile(filePath, ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
message = null;
stream.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
return true;
}
在抓取某些特定網頁時,程序執行到CreateMHTMLBody時直接無提示退出。
代碼內無法捕獲異常,AppDomain.CurrentDomain.UnhandledException 同樣無法捕獲。
windows日志有錯誤信息如下:
錯誤模塊名稱: unknown,版本: 0.0.0.0,時間戳: 0x00000000
異常代碼: 0xc0000005
錯誤偏移量: 0x04bd4cb0
錯誤進程 ID: 0x2920
錯誤應用程序啟動

最佳回答:


CDO已經過時。這個組件是Windows 2000的,從來就沒支持過.Net。比如CDO裡沒有下載超時的設置……

新的程序應該使用System.Net.Mail.MailMessage。搜索示例代碼時可以用關鍵字RFC 2557 C#。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved