经过大量的谷歌搜索,追踪,错误和挫折之后,这个让我感到难过。
我在Azure上发布了一个MVC应用程序。我有一个查询数据库的控制器,并返回Json文件以用作Fullcalendar中的事件,如下所示:
Table "public.products"
Column | Type | Modifiers
--------+---------+-----------
id | integer |
Table "public.promotion_rules"
Column | Type | Modifiers
--------+---------+-----------
id | integer |
Table "public.products_promotion_rules"
Column | Type | Modifiers
-------------------+---------+-----------
product_id | integer |
promotion_rule_id | integer |
非常简单......在我的本地,这会生成一个非常好的文件,如下所示:
public JsonResult Events()
{
var ci = from c in db.CalendarItems
select c;
var rows = new List<dynamic>();
foreach(var item in ci)
{
if (item.ClassTime.HasValue)
rows.Add(new { ID = item.Id, title = item.title, start = item.start.ToString("yyyy-MM-dd") + "T" + item.start.TimeOfDay.ToString(@"hh\:mm\:ss"), end = item.end.ToString("yyyy-MM-dd") + "T" + item.end.TimeOfDay.ToString(@"hh\:mm\:ss")});
}
return Json(rows, JsonRequestBehavior.AllowGet);
}
但是,在已发布的azure网站上,我收到错误代码500.
这是我到目前为止所尝试的内容:
将此添加到web.config:
[{"ID":1,"title":"Event1","start":"2015-08-04T19:00:00","end":"2015-08-04T08:00:00"},{"ID":2,"title":"Event2","start":"2015-08-06T19:00:00","end":"2015-08-06T08:00:00"},{"ID":3,"title":"Event3","start":"2015-08-14T19:00:00","end":"2015-08-14T08:00:00"}]
在我的web.config中将httpErrors existingResponse =“PassThrough”添加到system.webServier。
很多关于web.config文件的推文
删除整个应用程序并在azure中重新创建
我设置了customersrors mode = off,我收到了这个错误:“已经有一个与此命令关联的打开的DataReader必须先关闭。”为了确保我仔细检查了我的连接字符串并且MARS处于活动状态。也许循环是问题?
答案 0 :(得分:0)
发现问题以及如何解决。使用azure支持台,我发现azure web 应用程序架构并不支持json事件到fullcalendar。我通过下载Azure SDK并按照以下步骤将此应用程序转换为云应用程序:
现在应用程序正在VM上运行,一切正常。我没有必要改变上面例子中的任何编码。