Tag: iis 7

缓存控制:无存储,必须重新validation未发送到IIS7 + ASP.NET MVC中的客户端浏览器

我正在尝试确保某个页面永远不会被缓存,并且在用户单击后退按钮时从不显示。 这个非常高评价的答案(目前1068票)表示使用 : Response.AppendHeader(“Cache-Control”, “no-cache, no-store, must-revalidate”); Response.AppendHeader(“Pragma”, “no-cache”); Response.AppendHeader(“Expires”, “0”); 但是在IIS7 / ASP.NET MVC中,当我发送这些头时,客户端会看到这些响应头: Cache-control: private, s-maxage=0 // that’s not what I set them to Pragma: no-cache Expires: 0 缓存控制头怎么了? IIS7或ASP.NET本机的内容是否会覆盖它? 我检查了我的解决方案,我没有覆盖此标头的代码。 当我添加Response.Headers.Remove(“Cache-Control”); 首先,它没有区别: Response.Headers.Remove(“Cache-Control”); Response.AppendHeader(“Cache-Control”, “no-cache, no-store, must-revalidate”); Response.AppendHeader(“Pragma”, “no-cache”); Response.AppendHeader(“Expires”, “0”); 当我添加[OutputCache]属性时: [OutputCache(Location = OutputCacheLocation.None)] public ActionResult DoSomething() { Response.Headers.Remove(“Cache-Control”); Response.AppendHeader(“Cache-Control”, “no-cache, […]

ASP.Net Response.Close问题

我正在使用ASP.Net + .Net 3.5 + VSTS 2008 + IIS 7.0 + C#来开发Web应用程序。 我在VSTS 2008中调试时发现,如果我在page_load中调用Response.Close()方法(请参考下面的代码),就会出现错误(从IE访问页面时),无法连接到服务器。 我的问题是, 通常什么时候应该调用Response.Close()? 或者不需要调用(依靠ASP.Net框架自动关闭)? BTW:我之前的理解是开发人员应该始终在服务器端完成处理并且所有数据都已使用Response.Write写入客户端时调用Response.Close。 我对么? 2为什么我在代码中遇到了这样的错误? 根本原因是什么? protected void Page_Load(object sender,EventArgs e){Response.Write(“Hello World!”); Response.Close(); }

如何分配IIS7线程?

我将log4net添加到我的应用程序中,现在可以在浏览我的网站时看到用户活动的线程ID。 是否有任何特定的算法来解决IIS7中线程分配的问题,或者它只是一个随机数分配(我怀疑它不是完全随机的,因为我的低流量站点显示线程大多在10-30范围内)? 可用线程数的最大值是多少? 而且我注意到我的调度程序出现了一个奇怪的线程ID – 这有什么原因吗? 调度程序是Quartz.net,id显示为“Scheduler_Worker-10”,而不仅仅是一个数字。

如何分析ASP.NET MVC应用程序中的请求性能?

我想捕获ASP.NET MVC应用程序中的请求的命中时间,处理时间,内存消耗和响应时间。 有没有办法或工具来执行此操作?

HttpContext抛出HttpException

我写了一个自定义的http处理程序。 我通过编写实现IHttphandler的类来完成此操作。 在那个class级里面我有这样的代码, context.Response.Clear(); context.Response.ClearHeaders(); context.Response.AddHeader(“Content-Disposition”, “attachment;filename=” + attachmentFileName); context.Response.AddHeader(“Content-Length”, new FileInfo(downloadFile).Length.ToString()); context.Response.ContentType = GetMimeType(attachmentFileName); context.Response.TransmitFile(downloadFile); context.Response.Flush(); context.Response.Close(); 偶尔我会收到这样的错误, Exception HttpException The remote host closed the connection The error code is 0x800703E3 或这个, Exception HttpException The remote host closed the connection The error code is 0x80070040 在这两种情况下,堆栈跟踪都是这样的, at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect) at System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush() at […]

可以在ASP.NET / IIS 7中有选择地禁用gzip压缩吗?

我使用长期的异步HTTP连接通过AJAX向客户端发送进度更新。 启用压缩时,不会以离散块的forms接收更新(出于显而易见的原因)。 禁用压缩(通过向添加元素) 确实解决了问题: 但是,这会在站点范围内禁用压缩。 我想保留每个其他控制器和/或操作的压缩,除了这个。 这可能吗? 或者我将不得不用自己的web.config创建一个新的站点/区域? 欢迎任何建议。 PS写入HTTP响应的代码是: var response = HttpContext.Response; response.Write(s); response.Flush();

Signalr / Hub未在IIS 7中加载,但在Visual Studio中正常工作

我正在使用SignalR的Asp .Net 4.0框架上的Web应用程序,从Nuget包安装它。 当我调试或运行应用程序而不在本地调试时,它可以正常工作。 但是,当它部署到生产服务器时,它无法找到动态注入httphandlers的signal/hubs文件。 由于它的动态特性,它必须在运行中创建,所以我不能只将工作文件复制到项目中。 我尝试了以下加载文件的方法: 并在代码背后: ScriptManager.GetCurrent(Page).Scripts.Add(new ScriptReference(“~/signalr/hubs”)); 所有这些都在本地工作,但不在服务器上。 在html中呈现的路径看起来是正确的,但那里没有文件,提供404错误。 如果重要,则服务器已将应用程序设置为完全信任,并且该应用程序将作为IIS中使用子域的另一个站点下的应用程序运行。

以编程方式安装IIS7的更好方法

我有一个安装所有先决条件的webapp安装程序,其中包括IIS 7。 由于IIS不是Visual Studio安装项目的先决条件,因此我提出了以下代码来从代码安装IIS(针对Windows Vista和7)。 private string ConfigureIIS7() { string output = string.Empty; if (Environment.OSVersion.ToString().Contains(“Microsoft Windows NT 5”)) // Its WindowsXP [with or without SP2] { MessageBox.Show(“IIS 6.0 is not installed on this machine. Please install the same and proceed with the installation or contact your administrator”,”Installer”,MessageBoxButtons .OK ,MessageBoxIcon .Warning); throw new System.Exception(“IIS 6.0 is […]