我有这个解决方案,使用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的存储功能.
===
更新:
我不认为我的问题是Save,但确实认为这将是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存储非常便宜.
詹姆斯,詹姆斯
原文地址:https://codeday.me/bug/20190629/1327358.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。