WebBrowserコントロールに問題があります。私たちはWebページのURLからスクリーンショットを取得したいと思い、Webブラウザを使用しています。
private void GenerateThumbnail()
{
WebBrowser webrowse = new WebBrowser();
webrowse.ScrollBarsEnabled = false;
webrowse.AllowNavigation = true;
webrowse.Navigate("https://stackoverflow.com/questions/31756420/how-to-run-asp-net-mvc-app-in-iis-10-on-windows-10");
webrowse.Width = 1024;
webrowse.Height = 768;
webrowse.DocumentCompleted += webbrowse_DocumentCompleted;
while (webrowse.ReadyState != WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents();
}
}
private void webbrowse_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser webrowse = sender as WebBrowser;
Bitmap bitmap = new Bitmap(webrowse.Width, webrowse.Height);
webrowse.DrawToBitmap(bitmap, webrowse.Bounds);
MemoryStream stream = new MemoryStream();
bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] strbytes = stream.ToArray();
//imgscreenshot.ImageUrl = "data:image/jpeg;base64," + Convert.ToBase64String(strbytes);
using (MemoryStream ms = new MemoryStream(strbytes))
{
using (System.Drawing.Image screenShotImage = System.Drawing.Image.FromStream(ms))
{
Bitmap cp = new Bitmap(screenShotImage);
cp.Save(@"webPage.png", ImageFormat.Png);
cp.Dispose();
}
}
}
「ページへのナビゲーションがキャンセルされました」というイメージが表示されています。これはMVC Webアプリケーションからのもので、コンソールアプリケーションから正常に動作します。
私は過去にこの問題を抱えていました。集中的な調査の後、WebBrowserコントローラーが信頼済みサイトゾーンにアクセスするのを防ぐセキュリティKBをマイクロソフトから取得したようです。 –