UPDATE 我能够让所有的东西都能正常工作,而且我只想用最新的代码发布。 我使用了Darin Dimitrov关于使用单独的通用http处理程序来处理file upload的build议,所以这是我想出的代码…让我知道如果你有问题。 <%@ WebHandler Language="C#" Class="Upload" %> using System; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.IO; using System.Net; using System.Web; public class Upload : IHttpHandler { public void ProcessRequest(HttpContext context) { /** * If 'newTicket' is "false", then the directory to upload to already exists and we can extract it from […]
有几个关于利用浏览器caching的问题,但是我没有发现在ASP.NET应用程序中如何做到这一点。 Google的Pagespeed说这是性能最大的问题。 到目前为止,我在我的web.config中做了这个: <system.webServer> <staticContent> <!–<clientCache cacheControlMode="UseExpires" httpExpires="Fri, 24 Jan 2014 03:14:07 GMT" /> –> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.24:00:00" /> </staticContent> </system.webServer> 评论代码的作品。 我可以设置过期的标题为将来某个特定的时间,但我无法设置cacheControlMaxAge来设置从现在静态内容将被caching多less天。 这是行不通的。 我的问题是: 我怎样才能做到这一点? 我知道可以设置caching只为特定的文件夹,这将是一个很好的解决scheme,但它不工作。 应用程序托pipe在Windows Server 2012上,在IIS8上,应用程序池设置为经典。 当我在webconfiguration中设置了这个代码后,我的速度达到了72(之前是71)。 50个文件没有被caching。 (现在49)我想知道为什么,我只是意识到,一个文件实际上caching(SVG文件)。 不幸的是,PNG和JPG文件不是。 这是我的web.config <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="exceptionManagement" type="Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManagerSectionHandler,Microsoft.ApplicationBlocks.ExceptionManagement" /> <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E34" requirePermission="false" allowDefinition="Everywhere" /> <sectionGroup […]
我有一个HttpHandler运行在一个客户端页面(跨域,而不是我们的IIS服务器等),当他们点击我们的embedded式链接,它会触发我们的服务器上的处理程序。 到目前为止一切正常。 我现在试图使用System.Web.HttpContext.Session对象,但它是空的。 我想这是空的,因为我们没有一个会话,直到我们的HttpHandler被调用? 对处理程序的多个调用将为每个调用创build一个新的会话? 如果是这种情况,MS只是在调用HttpHandler时禁用Session对象? 任何人都可以确认吗? 如果是这种情况,你们如何保持呼叫之间的状态呢? 某种基于SQL的数据对象? 一份文件? TIA
什么是ASP.NET中的HttpHandler? 为什么以及如何使用?
我的问题很简单(虽然答案很可能不会):我试图决定如何在C#/ ASP.NET中实现服务器端上传处理程序。 我已经使用HttpModules(IHttpModule接口)和HttpHandlers(IHttpHandler接口),我发现我可以使用任何一种机制来实现这一点。 我也觉得我不了解两者的区别。 所以我的问题是: 在什么情况下,我会select使用IHttpHandler而不是IHttpModule(反之亦然)? 是否有人执行更高的pipe道? 在某些情况下configuration更容易吗? 中等安全性不适合吗?
有人能用不到两句话来解释两者的区别吗? 是的,我知道谷歌可以提供数百个答案,但不是一个在两个明确的句子:)
当编写一个http处理程序/模块时,有一个接口成员来实现调用 – 布尔IsReusable 。 这个成员有什么意义? 如果我将其设置为false(或true),那么这对于其他Web应用程序意味着什么?
很长一段时间,当我在本地机器上处理涉及基于数据库的图像的Web应用程序项目时,我已经注意到一些烦人的事情。 当地我的意思是这是一个典型的环境与VS 2008和SQL Server 2005在我的工作站上。 每当我使用HttpHandler在本地显示图像时,只有一些图像在每个页面上呈现。 但是,当我将应用程序推送到托pipe环境时,问题通常会消失。 但是,我只是推出了一个新的项目到一个托pipe环境,并遇到了与我本地相同的问题 – 这一次,站点和数据库在托pipe环境中的同一台服务器上。 有没有人在这里发生了什么? 这是处理程序: [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class FeaturedHandler : IHttpHandler { Business biz = new Business(); public void ProcessRequest(HttpContext context) { if (context.Request.QueryString["ListingID"] != null) { int listingID = Convert.ToInt32(context.Request.QueryString["ListingID"]); DataSet ds = biz.GetFeaturedImageByID(listingID); DataRow row = ds.Tables[0].Rows[0]; byte[] featureImage = (byte[])row["Photo"]; […]
如何使用C#从asp.net中的sql数据库检索图像。 我想从数据库中检索图像文件,然后在标签中显示图像。 我尝试这个代码,但它不工作 ASPX <asp:Image ID="Image1" runat="server" ImageUrl="" Height="150px" Width="165px" /> 后面的代码 Byte[] bytes = (Byte[])ds.Tables[0].Rows[0]["image"]; Response.Buffer = true; Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.ContentType = "image/jpg"; Response.BinaryWrite(bytes); Response.Flush(); Response.End(); 如何给这个图片的ImageUrl=""链接?
曾经在我的asp.net webforms应用程序工作,现在抛出这个错误: System.MissingMethodException:未find方法 DoThis方法是在同一个类,它应该工作。 我有一个通用的处理程序: public class MyHandler: IHttpHandler { public void Processrequest(HttpContext context) { // throws error now System.MissingMethodException: Method not found? this.DoThis(); } public void DoThis() { // } }