gpt4 book ai didi

c# - Azure 502错误..尝试新的WebBrowser()和/或image.Save()

转载 作者:行者123 更新时间:2023-11-30 12:11:01 25 4
gpt4 key购买 nike

我的解决方案可以在使用 Visual Studio 2012 .Net 4.5 的开发工作站上完美运行。没有 IIS 更改。它基本上是 C# 抓取网页并将其转换为 bmp。我不确定我的问题是否是我正在尝试写入文件系统。

这就是我在 Azure 中得到的。我读到这可能是 Azure 中的限制(如果是这样的话,我会非常失望)

502 - Web 服务器在充当网关或代理服务器时收到无效响应。

我发现这段代码存在问题:

 public Bitmap GenerateThumbnail()
{
Thread thread = new Thread(new ThreadStart(GenerateThumbnailInteral));
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
return ThumbnailImage;
}
private void GenerateThumbnailInteral()
{
WebBrowser webBrowser = new WebBrowser();
webBrowser.ScrollBarsEnabled = false;
if (this.Method == ThumbnailMethod.Url)
webBrowser.Navigate(this.Url);
else webBrowser.DocumentText = this.Html;
webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
while (webBrowser.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();
webBrowser.Dispose();
}

或者也许使用 image.save (这可能是接下来的问题)。

image.Save(Server.MapPath("~") + "/output/"+filename);

我们的预算很低,并努力保持我们的托管网站简单且便宜。宁愿不必构建工作进程或使用 Azure 的存储功能。

===

更新:

我认为我的问题不是保存,但确实认为这将是 Azure 上的问题。此外,作为测试,我创建了一个处理程序 ashx,它将图像流返回到 html img 标记。这在本地也很好用,但在 Azure 上我只是得到红色 X。不确定这是怎么回事。

最佳答案

您基本上没有权限在 Azure 中执行此操作以写入本地目录而不分配它们。

但是这个问题有很多解决方案。

设置启动任务以向目录分配权限。值得一读。 WindowsAzure: Is it possible to set directory permissions within the web.config?

如果您需要临时本地驱动器,那么这是首选方法。

http://msdn.microsoft.com/en-us/library/windowsazure/ee758708.aspx

如果您需要持久存储,那么 Blob 存储将是最佳选择。

http://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/

我相信您也可以像 VHD 一样将驱动器连接到计算,但我不确定两个计算是否可以同时写入该驱动器,因此如果您需要保留数据,最好使用 blob 存储数据。

Blob 存储非常便宜。

嘿,詹姆斯

关于c# - Azure 502错误..尝试新的WebBrowser()和/或image.Save(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16506751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com