我的程序是在web下获取剪贴板的内容,在不同服务器之间,我想把在A服务器上的网页A的内容复制下来,保存在剪贴板中,然后再在我的程序中读取剪贴板中刚才复制下来的内容放到我的页面上。
在VS的调试模式下没有问题;但是在IIS中就不行了,iData老是为空,程序在iis下永远返回空值,为何?有的说是应用程序池权限的问题,我弄了半天没有结果。求高手帮帮。谢谢。应用程序池的标识中的预定义账户都改过了,还是不行的。
[WebMethod]
public static string clipboard()
{
Thread th = new Thread(new ThreadStart(CopyTxt));
th.TrySetApartmentState(ApartmentState.STA);
th.Start();
th.Join();
return result;
}
[STAThread]
static void CopyTxt()
{
string clipboard = null;
IDataObject iData = Clipboard.GetDataObject();
if (iData != null)
{
if (iData.GetDataPresent(DataFormats.Text, true))
{
clipboard = (String)iData.GetData(DataFormats.Text);
tblzz(clipboard);
}
}
else
{
result = "没有数据";
}
}
你在本地使用,是因为你在本地使用了剪贴板功能,剪贴板有数据,而放在iis上面,服务器本身并没有产生剪贴板剪贴事件,必然没有任何内容啊。
看了你的描述,应该采用数据采集的方式来完成上述内容,可以用webclient下载目标网页,用正则分析后得到自己需要的内容,然后入库,再通过数据查询显现在页面上。