是的,有人會說「你瘋了,在asp窗體中使用winforms控件」......我認爲他們是對的。但我要說的。「我不是唯一的一個!,看看」Asp.Net中的System.Windows.Forms.WebBrowser WebForm DocumentCompleted沒有解僱
所以......
做了些什麼東西像以前的鏈接。我做了以下:
using System;使用System.Threading的 ;使用System.Windows.Forms的 ;
命名空間XXXX.aspx.Print { 公共部分類德魯克:System.Web.UI.Page { 私人ManualResetEvent的MRE =新的ManualResetEvent(假);
protected void Page_Load(object sender, EventArgs e)
{
Threading();
}
private void Threading()
{
Thread t = new Thread(new ThreadStart(GoAhead));
t.SetApartmentState(ApartmentState.STA);
t.Start();
mre.WaitOne();
t.Abort();
}
private void GoAhead()
{
DateTime time = DateTime.Now;
WebBrowser webBrowser = new WebBrowser();
webBrowser.Navigate(Request.UrlReferrer.ToString());
webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
while (true)
{
Thread.Sleep(0);
TimeSpan elapsedTime = DateTime.Now - time;
if (elapsedTime.Seconds >= 13)
{
mre.Set();
}
System.Windows.Forms.Application.DoEvents();
}
}
void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser webBrowser = (WebBrowser)sender;
if (e.Url.AbsolutePath != webBrowser.Url.AbsolutePath) return;
webBrowser.Print();
}
}
}
現在...
的DocumentCompleted事件不解僱(既不ProgressChanged),我已經試了下:
- 添加庫MSHTML.DLL到我的項目,並將文件放入我的lib文件夾...我做到了......沒有變化。
- 嘗試處理WebBrowser.ReadyState的狀態...我做到了......沒有變化(實際上在收到WebBrowserReadyState.Complete後我試圖用 webBrowser.Print()打印文檔;但是我收到怪異的IE彈出告訴我:「'dialogArguments .__ IE_PrintType'是空或不是一個對象'」......好吧,做一些研究我得到了:一個關於dcomcnfg和一些com安全設置的微軟主題 我做到了......沒有變更。 ...
通過I'm在64位工作方式,Win7的... 所以之前我格式化整個電腦... 有什麼建議?
你是對的...!不建議在iis中獲勝的不確定地形。 – Lug 2010-10-05 11:28:29