我试图从JQuery传递JSON到.ASHX文件。 下面的jQuery示例: $.ajax({ type: "POST", url: "/test.ashx", data: "{'file':'dave', 'type':'ward'}", contentType: "application/json; charset=utf-8", dataType: "json", }); 如何检索我的.ASHX文件中的JSON数据? 我有方法: public void ProcessRequest(HttpContext context) 但是我找不到请求中的JSON值。
我不是从数据库中寻找任何stream式文件内容的替代品,事实上,我正在寻找问题的根源,这是运行文件,直到IIS 6,我们在经典模式下运行我们的应用程序,现在我们升级我们的IIS到7,我们在pipe道模式下运行应用程序池,并开始此问题。 我有一个处理程序,我必须提供大文件到客户端请求。 我面临以下问题, 文件的平均大小为4到100 MB,所以我们考虑80MB的文件下载情况。 缓冲,慢启动 Response.BufferOutput = True; 这导致文件的启动非常缓慢,因为用户下载甚至进度条直到几秒钟才出现,通常是3到20秒,原因在于IIS首先读取整个文件,确定内容长度然后开始文件传输。 文件正在video播放器中播放,而且运行速度非常慢,但是iPad只会首先下载文件的一部分,所以它的运行速度很快。 缓冲closures,无内容长度,快速启动,无进展 Reponse.BufferOutput = False; 这导致立即开始,但最终客户端(典型的浏览器,如Chrome)不知道内容长度,因为IIS不知道,所以它不显示进度,而是说,X KB下载。 缓冲closures,手动内容长度,快速启动,进度和协议违例 Response.BufferOutput = False; Response.AddHeader("Content-Length", file.Length); 这导致在Chrome等立即文件下载正确,但在某些情况下,IIS处理程序导致“远程客户端closures连接”错误(这是非常频繁的)和其他WebClient导致违反协议。 这会发生所有请求的5%到10%,而不是每个请求。 我猜是什么事情发生,IIS不会发送任何称为100继续,当我们不做缓冲和客户端可能断开不期望任何输出。 但是,从源文件读取文件可能需要更长的时间,但在客户端,我增加了超时但看起来像IIS超时,并没有控制。 有没有反正我可以强制响应发送100继续,不让任何人closures连接? UPDATE 我在Firefox / Chrome中发现了以下头文件,在协议违例或错误头文件中没有什么不寻常的地方。 Access-Control-Allow-Headers:* Access-Control-Allow-Methods:POST, GET, OPTIONS Access-Control-Allow-Origin:* Access-Control-Max-Age:1728000 Cache-Control:private Content-Disposition:attachment; filename="24.jpg" Content-Length:22355 Content-Type:image/pjpeg Date:Wed, 07 Mar 2012 13:40:26 GMT Server:Microsoft-IIS/7.5 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET 更新2 转向回收仍然没有提供太多,但我已经增加了我的MaxWorkerProcess到8,现在我得到的错误数量较less。 […]
我试图从Web API使用HttpClient POST JsonObject 。 我不太清楚如何去解决这个问题,在代码示例中找不到太多东西。 以下是我到目前为止: var myObject = (dynamic)new JsonObject(); myObject.Data = "some data"; myObject.Data2 = "some more data"; HttpClient httpClient = new HttpClient("myurl"); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = httpClient.Post("", ???); 我想我需要把我的JsonObject当成StreamContent来投放,但是我正在把这个步骤挂起来。
我find了用于AngularJS Web应用程序的量angular器框架。 我怎样才能在没有使用AngularJS的网站上使用量angular器? 我写了我的第一个testing和Protractor触发此消息: Error: Angular could not be found on the page https://www.stratexapp.com/ : retries looking for angular exceeded
我很less去这里。 我不能在本地重现这一点,但当用户得到错误,我得到一个自动的电子邮件exception通知: Invalid length for a Base-64 char array. at System.Convert.FromBase64String(String s) at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) at System.Web.UI.HiddenFieldPageStatePersister.Load() 我倾向于认为分配给viewstate的数据存在问题。 例如: List<int> SelectedActionIDList = GetSelectedActionIDList(); ViewState["_SelectedActionIDList"] = SelectedActionIDList; 如果不能在本地重现错误,就很难猜出错误的来源。 如果有人有这个错误的经验,我真的想知道你发现了什么。
我试图做一个非常基本的REST调用到我的MVC 3 API和我传入的参数不绑定到操作方法。 客户 var request = new RestRequest(Method.POST); request.Resource = "Api/Score"; request.RequestFormat = DataFormat.Json; request.AddBody(request.JsonSerializer.Serialize(new { A = "foo", B = "bar" })); RestResponse response = client.Execute(request); Console.WriteLine(response.Content); 服务器 public class ScoreInputModel { public string A { get; set; } public string B { get; set; } } // Api/Score public JsonResult Score(ScoreInputModel input) […]
这件事让我发疯,而这个错误对我来说是毫无意义的: 无法更新EntitySet“TableB”,因为它具有DefiningQuery,并且元素中不存在用于支持当前操作的元素。 我的桌子是这样放的: 表A int idA(身份,主键) … 表B int idA(TableA.idA的FK) int val TableB在SQL服务器中没有定义的主键。 entity framework已导入表和关联,并将这两个字段设置为关键字。 但是当我尝试插入表格时会输出错误! 怎么了?? 编辑:正如亚历克斯build议,解决scheme是这样的: 右键单击edmx文件,select打开方式,XML编辑器 在edmx:StorageModels元素中find实体 完全删除DefiningQuery 重命名商店:Schema =“dbo”为Schema =“dbo”(否则,代码将产生一个错误,表明该名称是无效的) 删除商店:名称属性 我把钥匙保持原样,因为对我来说两列都是钥匙的一部分。
我们使用NewRelic来提供服务器端的应用程序跟踪。 我们已经注意到,我们的一些应用程序一直在System.Web.Mvc.MvcHandler.BeginProcessRequest()方法中花费大约100ms。 这发生在任何自定义控制器代码被调用(这是单独logging,而不是累积)之前 – 这并不明显,为什么它会花费这么多的时间在这种方法。 MVC会在这种方法中做什么样的事情? 难道这只是请求排队? [编辑:] 怀疑 – Scalayer的答案是下面点。 我们删除并优化了所有的会话依赖关系,并且看到了应用程序可伸缩性和稳定性的大幅提升
我试图添加一个脚本引用jQuery在我的母版页,以便它可以为任何页面。 它目前看起来像这样 <script type="text/javascript" src="jquery.js"></script> 问题是path总是相对于正在执行的aspx页面,所以这只会在“jquery.js”文件位于同一个文件夹中时才起作用。 为了使它工作,我必须改变行: <script type="text/javascript" src="../../jquery.js"></script> 这显然不太理想,因为它只适用于根文件夹下两层的页面。 如果我尝试以下操作,IIS将引发有关意外字符的错误。 <script runat="server" type="text/javascript" src="~/jquery.js"></script> 有任何想法吗? 编辑:我忘了提及,脚本必须在头标记 当我把它添加到我的母版页时,当前的最佳答案会抛出“ ASP.NET Ajax客户端框架无法加载 ”错误。 它从JavaScript而不是.Net编译器抛出。 如果我把ScriptManager移动到它应该是的头部,我得到一个关于需要在表单标签内的ScriptManager的编译错误。 第三个答案在编译器中抛出“ path中的非法字符 ”exception 编辑2:当我将该行添加到我的头标记时,我从IIS中得到此错误。 Controls集合不能被修改,因为控件包含代码块(即<%…%>) 解决:我从下面的答案编辑响应,并把它放在一个asp:ContentPlaceHolder元素
我需要删除过多的标题 (主要是为了通过渗透testing)。 我花了一些时间研究涉及运行UrlScan的解决scheme,但这些都很麻烦,因为每次Azure实例启动时都需要安装UrlScan 。 对于不涉及从startup.cmd部署安装程序的Azure,必须有一个很好的解决scheme。 我明白,响应标题被添加在不同的地方 : 服务器 :由IIS添加。 X-AspNet-Version :在HttpResponse类中Flush时由System.Web.dll添加 X-AspNetMvc版本 :由System.Web.dll中的MvcHandler添加。 X-Powered-By :由IIS添加 有没有什么办法来configuration(通过web.config等?)IIS7删除/隐藏/禁用HTTP响应标头,以避免在asafaweb.com的“过度的头”警告,而不创build一个IIS模块或部署安装程序需要每次Azure实例启动时都要运行?