我用DOTMSN来读取我的MSN上的好友列表..用的是WEB方式,代码如下
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using DotMSN;
public partial class _Default : System.Web.UI.Page {
    protected Messenger messenger;

    protected void Page_Load (object sender, EventArgs e) {
  
    }

  
    private void StartMSN(){
        messenger = new Messenger();
   
        try{
                messenger.ContactOnline += new Messenger.ContactOnlineHandler(ContactOnline);
                messenger.ConversationCreated += new Messenger.ConversationCreatedHandler(ConversationCreated);
                messenger.SynchronizationCompleted += new Messenger.SynchronizationCompletedHandler(OnSynchronizationCompleted);
                messenger.Connect(abc@ddd.com, "xxxxxx");
                if (!messenger.Connected) {
                    Response.Write("无法连接!!!");
                    return;
                }
                else {
                    Response.Write("已经连接!!!");
                }
                messenger.SynchronizeList();
          
                
        }
        catch (MSNException e) {
            this.Label1.Text += "Connecting failed: " + e.ToString();
        }
      
    }

        protected void Button1_Click (object sender, EventArgs e) {
          
            StartMSN();
        }


        private void ContactOnline (Messenger sender, ContactEventArgs e) {
        }


  

    private void OnSynchronizationCompleted(Messenger sender, EventArgs e) {
  
        foreach (Contact contact in messenger.ReverseList) {
           
 this.Label1.Text += "contact.Mail>> " + contact.Name;

        }
        messenger.SetStatus(MSNStatus.Online);

    }

 

    private void ConversationCreated(Messenger sender, ConversationEventArgs e) {
    }

    private void ContactJoined(Conversation sender, ContactEventArgs e) {
    }

    private void ConnectionEstablished(Conversation sender, EventArgs e) {
    }
    private void ContactTyping(Conversation sender, ContactEventArgs e) {
    }

    private void FileTransferHandler_FileTransferInvitation(FileTransferHandler sender, FileTransferInvitationEventArgs e) {
    }

  
}



编译是通过的..就是显示不出来列表...而我如果重新定义: private void OnSynchronizationCompleted函数..在函数内部执行联系人列表的数据写入数据库的操作,结果数据库里会有记录....

问题到这就非常明显了...是ASP.NET的跨线程调用问题...但是如何在WEB页里操作的..毕竟PAGE没有Invoke方法啊!!

请高手帮忙..我刚学.NET没多久....