2013-03-19 170 views
0

我一直在使用一個簡單的網頁表單應用程序在asp.net中縮短網址。我成功地完成了我的功能,當我更改url時,它應該自動複製到剪貼板。Clipboard.SetText()顯示錯誤

我所做的文本值變量來存儲像

shortUrl.Text = shortURL; 

我打電話剪貼板功能

clip_board(shortURL); 
之後

我的功能是

public void clip_board(string shortUrl) 
    { 
     MessageBox.Show(shortUrl); 
     Clipboard.SetText(shortUrl); 

    } 

這裏的消息框顯示縮短的網址,但Clipboard.SetText()顯示錯誤爲

在進行OLE調用之前,當前線程必須設置爲單線程單元(STA)模式。確保您的Main函數具有標記的STAThreadAttribute。

如何克服這個錯誤?

回答

3

你說這是一個ASP.NET應用程序:在這種情況下,你的.NET代碼將在服務器上運行,所以你不能訪問客戶端的剪貼板 - 也不能調用WinForms方法,如MessageBox.Show

在迴應評論:

但它顯示了精確值的消息框...

你調試使用Visual Studio和卡西尼Web服務器?在這種情況下,您可能會看到MessageBox.Show的輸出,因爲它在當前會話的上下文中運行。但是,當您部署到IIS時,這不起作用。

+0

但它顯示了具有確切值的消息框,並且它沒有訪問剪貼板功能 – 2013-03-19 08:45:46