昨天我试图在Facebook上分享一个网页,特别是https://share.novamanus.com/ad/659,但这并没有在Facebook上正确预览.当我试图用Facebook Open Graph Debugger进行扫描时,我看到了一个我以前没有遇到过的错误.
Provided og:image url, https://novamanusprod.blob.core.windows.net/nmphoto/thumb_aa76caf4-f394-402a-a84a-58124222b6b4.jpeg encountered an unknown error.
Run Code Online (Sandbox Code Playgroud)
没有其他信息详细说明发生了什么.网页的响应是HTTP 200.
我可以直接成功访问图像URL,但尝试使用Facebook Open Graph Debugger重新刮取页面导致相同的错误消息.
什么可能导致这个?在这次尝试后30-40分钟,一切都很完美.到目前为止,我还没有能够重现这个问题,Azure blob存储日志也没有告诉我任何事情.
我不能为我的生活弄清楚为什么我在这里得到一个内存不足的例外,即使经过对各种网站和论坛的大量研究.有人能够在这段代码中阐明所有邪恶的根源吗?调用Graphics.DrawImage()方法第79行引发异常.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult EditImage(FileModel model)
{
var fileData = new MySite.Models.File(model.FileID, model.ClientID, ConfigurationManager.ConnectionStrings["MySite"].ConnectionString).Data;
Image image = null;
using (var memStream = new MemoryStream())
{
memStream.Write(fileData, 0, fileData.Length);
image = Image.FromStream(memStream);
}
using (var graphics = Graphics.FromImage(image))
{
graphics.DrawImage(image, model.x1, model.y1, (model.x2 - model.x1), (model.y2 - model.y1));
graphics.Save();
}
using (var memStream = new MemoryStream())
{
image.Save(memStream, System.Drawing.Imaging.ImageFormat.Jpeg);
return File(memStream.ToArray(), "image/jpeg");
}
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
[OutOfMemoryException: Out of memory.]
System.Drawing.Graphics.CheckErrorStatus(Int32 status) +1143476
System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y, Int32 width, …Run Code Online (Sandbox Code Playgroud) 假设您有一个多线程Windows服务,它执行大量不同的操作,这需要花费相当多的时间,例如从不同的数据存储中提取数据,解析所述数据,将其发布到外部服务器等.操作可以在不同的时间执行层,例如应用层,存储库层或服务层.
在此Windows服务的生命周期中的某个时刻,您可能希望通过services.msc关闭它或重新启动它,但是如果您无法在服务的时间跨度内停止所有操作并终止Windows服务中的所有线程. msc期望用stop程序完成,它会挂起,你必须从任务管理器中删除它.
由于上面提到的问题,我的问题如下:如何实现处理Windows服务关闭的故障安全方法?我有一个挥发性布尔值作为关闭信号,由我的服务基类中的OnStop()启用,并且应该优雅地停止我的主循环,但如果在某个其他层中有一个操作,这是不值得的是时候做任何操作了.
应如何处理?我目前处于亏损状态,需要一些创造性的投入.
我正在NewtonSoft.Json.JsonConvert.SerializeObject()将 ASP.NET Dictionary 对象序列化为 JSON 字符串。然后,我通过 ViewBag 将此字符串传递到我的 MVC 视图。
当我使用 MVC Razor by Razor 语法尝试从 ViewBag 加载 JSON 字符串并将其加载到 JavaScript 变量中时,我的 JavaScript 由于语法错误而崩溃。当我检查源代码时,我发现:
var hf = {"Test0":65,"Test1":23,"Test2":43,"Test3":6,"Test4":31,"Test5":78,"Test6":1,"Test7":53,"Test8":74,"Test9":54};
Run Code Online (Sandbox Code Playgroud)
这是我在视图中加载 ViewBag 内容的逻辑:
@section RenderChart
{
<script type="text/javascript">
google.load("visualization", "1", { packages: ["corechart"] });
function drawChart() {
var hf = @ViewBag.ChartJsonData;
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我的 JSON 字符串正在被 HTML 编码。我尝试在运行后将其传递到 ViewBag 中,Server.HtmlDecode()但这没有帮助。有谁知道如何解码该字符串或将其传递给 MVC 视图中的 JavaScript,而不将其转换为 HTML 实体?
给定一个日期,我希望计算当前的年度季度。
如果今天的日期大于给定的日期,我希望根据给定的日期计算当前年度季度的最后一个月,以及下一个年度季度的第一个月。
我经营的宿舍是 jan-mar、apr-jun、jul-sep 和 oct-dec。
如果日期输入为 01/10/2013,我希望输出为 1 月(下一个年度季度的第一个月)和 12 月(当前年度季度的最后一个月)。在这种情况下,月份变量将包含值 10,而日变量将包含值 1。
我到目前为止的尝试:
每个季度的最后一个月
if (month % 3 == 0)
month += (DateTime.Now.Day > day ? 3 : 0);
if (month % 3 == 1)
month += 2;
if (month % 3 == 2)
month += 1;
Run Code Online (Sandbox Code Playgroud)
每个季度的第一个月
if (month % 3 == 1) // jan/mapr/jul/oct
month += (DateTime.Now.Day > day ? 3 : 0);
if (month % 3 == 2) // feb/may/aug/nov
month += 2;
if (month …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用屏蔽文本框输入IP,并且数字当前正用逗号分隔.有没有办法用点字符替换逗号字符?
到目前为止,这是我屏蔽文本框的定义:
//
// txtIPAddressForSaving
//
this.txtIPAddressForSaving.Font = new System.Drawing.Font("Microsoft Sans Serif", 30F);
this.txtIPAddressForSaving.Location = new System.Drawing.Point(148, 115);
this.txtIPAddressForSaving.Mask = "009.009.009.009";
this.txtIPAddressForSaving.Name = "txtIPAddressForSaving";
this.txtIPAddressForSaving.PromptChar = '.';
this.txtIPAddressForSaving.Size = new System.Drawing.Size(463, 53);
this.txtIPAddressForSaving.TabIndex = 13;
this.txtIPAddressForSaving.TabStop = false;
Run Code Online (Sandbox Code Playgroud) 几个月来我一直想知道如何在 Transact SQL 中实现这个算法,https://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance
如何做呢?
我试图返回一个对象的美化的 json 序列化,并使用 Response.Write 将其输出到 ASP.NET 中,这是我的代码。不要介意不验证用户输入的明显犯罪行为,这只是一个愚蠢的小测试应用程序。
try
{
var customer = this.sc.GetCustomer(Convert.ToInt32(TextBox1.Text));
var json = JsonConvert.SerializeObject(customer, Formatting.Indented);
Response.Write(json);
}
catch (Exception ex)
{
Response.Write("An error occurred: " + ex.Message);
}
Run Code Online (Sandbox Code Playgroud)
看来 Formatting.Indented 没有效果。我究竟做错了什么?
我正在创建一个工业触摸屏计算机的应用程序,没有硬件吹嘘.该触摸屏计算机的操作者应该能够在具有背景图像的表格上解锁和拖动按钮.
但是,正如许多人已经知道的那样,使用背景图像移动父控件上的控件并不漂亮.拖动速度很慢,而不是经历平滑的拖动,操作员将在鼠标指针唤醒时看到一个按钮跳过,当您将指针移动到屏幕上时.
这是移动按钮的当前代码:
private void btnButton_MouseMove(object sender, MouseEventArgs e)
{
// Do not proceed unless it is allowed to move buttons
if (!this._AllowButtonsToBeMoved)
return;
if (this._IsBeingDragged)
{
var btn = (sender as Button);
var newPoint = btn.PointToScreen(new Point(e.X, e.Y));
newPoint.Offset(this._ButtonOffset);
btn.Location = newPoint;
}
}
Run Code Online (Sandbox Code Playgroud)
我不打算解决这个确切的问题,我宁愿消除它以节省一些时间.为了消除这种情况,我希望实现的是一种更有效的方式来移动盒子.我想移动一个虚线矩形而不是按钮,然后将它放在我想要按钮的位置必须比在屏幕上拖动按钮更有效,导致谁知道有多少重绘操作.
有没有人有更好的建议?如果没有,那么我非常感谢有关如何在屏幕上创建和移动这个矩形的指示,因为我很难找到关于如何在好的Google上进行此操作的良好信息来源.
更新,26/11/13
我正在尝试Luaan关于覆盖表单的OnPaint的建议,但是我不确定如何在此代码中添加按钮的渲染.有任何想法吗?
protected override void OnPaint(PaintEventArgs e)
{
if (_IsBeingDragged)
{
e.Graphics.DrawImage(this._FormPaintBuffer, new Point(0, 0));
}
else
{
base.OnPaint(e);
}
}
Run Code Online (Sandbox Code Playgroud) c# ×6
asp.net ×2
json ×2
winforms ×2
.net ×1
algorithm ×1
asp.net-mvc ×1
azure ×1
facebook ×1
jaro-winkler ×1
javascript ×1
json.net ×1
razor ×1
sql ×1
t-sql ×1