IIS的System.OutOfMemoryException问题网络服务
我们有一个ASP.NET Web服务 system.outofmemoryException:类型" System.outofMemoryException"的例外. at System.Threading.thread.startinternal(Iprincipal Principal,StackCrawlmark和Stackmark)at System.Threading.thread.start() 我们正在刷新应用程序池作为临时修复.问题似乎每4-5个小时重新出现一次. Web服务基本上从SQL Server DB返回存储过程中的数据.这是一项多年来没有进行任何代码更改的旧应用程序.是否有可能稳定的应用程序突然存在任何记忆泄漏问题? 解决方案 您将需要分析IIS应用程序池的内存转储,以使其难以拍摄.过去,我做了同样的事情,一旦您对工具感到满意,这并不是太困难了. windbg- https://go.microsoft e ?linkId = 5366
0 2024-04-21
编程技术问答社区
调试本地IIS Webserver上托管的ASP.NET MVC3应用程序
我已经设法使用本地IIS Web服务器托管我的MVC3应用程序,并且可以从托管它的计算机调试和所有内容. - 但是,当我发送请求时从另一台计算机(我的Mac,正在以Parallels VM中运行窗口),我得到了预期的结果,但是调试器不会停止在我的断点! 我尝试在我的操作中添加Debugger.Break();,这崩溃了w3wp.exe .. ,因此总结:本地请求正在工作,可以进行调试.外部请求正在工作,但不能调试. 在我的项目属性中,我设置了Use Local IIS Webserver,Use IIS Express是 . . 我正在使用Visual Studio 2012 Professional.该项目是基于Azure SDK的,附件的过程为Waiishost.exe. 解决方案 问题是,由于我已经设置了IIS服务器以在端口83上服务,而本地我将在端口81上访问,因此调试器不会监视这些请求. 要解决此问题(或者通常在Cassini Web服务
0 2024-04-21
编程技术问答社区
如何在网站重启和重新部署时预热托管在IIS中的asp.net core应用程序(a)?
我在IIS中托管ASP.NET Core 2.0应用程序.该应用只有在将至少一个Web请求发送到网站时才启动.但是,我需要该应用在应用程序(a)重新启动IIS和(b)重新雇用(发布到文件夹)时启动.通过" start"我的意思是构建Startup类,其配置服务(...)和配置(...)方法被称为,因为我已经配置了一些需要在Web主机启动,而不仅仅是第一个Web请求. 这是我的应用程序的入口点: public class Program { public static void Main(string[] args) { Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .MinimumLevel.Override("Microsoft", LogEventLevel.Information) .Enri
0 2024-04-21
编程技术问答社区
IIS工作线程与Web应用线程
我正在维护一个ASP.NET Core Web应用程序,该应用程序需要重复运行一些背景线程.我知道这不是一个好的设计,但目前我必须以最小的努力来解决其主要问题.现在,我想知道我是否应该担心通过Web服务器处理用户HTTP请求? 问题很简单,但我找不到任何明确的答案: 在应用程序中创建的线程之间有什么区别: Task.Run(() => { // some parallel job }) 和处理http请求的IIS的工人线程? 它们是来自同一线程池还是居住在单独的池中? 解决方案 根据最大的区别是IIS意识到它为传入请求创建的线程. IIS不知道您自己创建的任何线程. 当应用程序池被回收或关闭IIS时,它将等到所有请求完成处理之前 - 它等待为每个请求创建的线程完成处理,然后杀死该过程.如果您创建了任何超过请求的线程(例如,如果创建背景线程然后将响应发送回客户端)IIS不知道线程仍在运行,并且可以随时杀死整个过程. 如果您在所有线程完成之前不返回
0 2024-04-21
编程技术问答社区
如何创建一个C#会话对象包装器?
如何创建一个可以在其中获取和设置的类库,例如IIS Session对象,在其中使用var x = objectname("key")获取值或objectname("key") = x来设置值? 解决方案 通常,我只有一个静态类,它包装了我的会话数据,并使其类型为安全: public static class MySessionHelper { public static string CustomItem1 { get { return HttpContext.Current.Session["CustomItem1"] as string; } set { HttpContext.Current.Session["CustomItem1"] = value; } } public static int CustomItem2 { get { return (int)(HttpCont
0 2024-04-21
编程技术问答社区
在几次成功的请求后,网络API突然返回403禁止。
我一直在与ASP.NET Web API结合使用离子应用程序.我正在使用该API进行所有数据传输. 我一直在遇到一个问题:经过一些成功的要求,API突然返回403禁止.似乎API有限制或其他内容,因为它在我在很短的时间内执行多个请求时就会发生. 这个问题的奇怪之处在于,如果我本地运行Web API,它的工作原理非常好,但是如果我在外部IIS服务器上托管它,则在几个请求后会出现此问题.我在服务器上结束该过程以临时修复它. 我希望你们中的一些人知道这个问题. 这将来可能会为我解决很多. 谢谢. 解决方案 问题在我的IIS经理内部的ASP.NET Web API内部.我必须增加动态IP限制的限制(DIPR),因为API同时返回了403个错误.当我增加有限的时,我注意到问题已解决.
0 2024-04-21
编程技术问答社区
如何在代码后面检查IIS7(webSite)是否正在使用端口?
我开发了一个程序"安装程序",该程序将在IIS上添加和配置新网站. 我的问题是我想检查用户在安装之前是否已经使用了用户给出的端口. 我的项目是C#Winform风格. 有人有主意吗? string[] lPorts = System.IO.Ports.SerialPort.GetPortNames(); ? 解决方案 检查以下内容: 在bindingInformation属性:获取或设置当前绑定的绑定信息. 该属性的值是一个结肠限制的字符串,其中包括绑定的IP地址,端口和主机名.您可以将主机名留为空白.您可以将IP地址设置为"*",以指示绑定适用于所有变量. 例如,端口80上所有IP地址设置的绑定,并且没有指定的主机名返回" :80:"此属性.端口8080上为IP地址设置的绑定192.168.1.150返回" 192.168.1.150:8080:".端口80上所有IP地址设置的绑定,用于名为" Microsoft.com"返回的主机::80:micros
0 2024-04-21
编程技术问答社区
找到网站的主机头值?
如何找到将在IIS中提供的网站的主机标头值? 我只想在浏览器中显示该主机标题名称. 我如何获得该值? 解决方案 主机标头嵌入到HTTP标头部分中作为主机.如果要在自己的ASP.NET页面中显示该内容,则可以从page.context.request.headers.getValues(" host") 访问该页面
0 2024-04-21
编程技术问答社区
IIS反向代理干扰重定向位置头的问题
我在ASP.NET站点上具有以下重写规则,以使IIS充当反向代理: 基本上,domain.com/u/* domain.com/d/*或domain.com/c/*路径上的任何内容都会被转发到本地服务器.这很好,通常我还没有任何问题. 我的本​​地服务器将301 Permanent Redirect返回Location标头设置为:subdomain.domain.com/some
0 2024-04-21
编程技术问答社区
将web farm迁移到asp.net的运行时版本4,同时保持会话。
我们已经将WebApplication从.NET运行时2(v 3.5)迁移到.NET运行时4(V 4.5),我有一个疑问. 我们的SessionState Server是一个" actasterver",并在单独的服务器上从Framework 2运行Aspnetsession.当我们在测试中将应用程序池部署并升级为.NET 4到我们的一个网络服务器时,似乎会话已到期或已删除,因为我们将其重定向到应用程序的登录页面. 是否有任何方法可以在此过程中没有用户丢失会话的情况下部署我们的新版本?是否与.NET 2中的应用程序池runnning创建的sessionCookie是否与.NET 4不兼容?我什么都看不到任何有关此事的更改白皮书 编辑:网站的应用程序路径是相同的,此版本的应用程序没有更改,并且我们已经完成了" No-Downtime"部署(用户没有注意到新版本,并且没有记录下来) 5 - 6年,约50个发行版. edit2:相反的是不正确的:在运行.NET框架4的应用程序
0 2024-04-21
编程技术问答社区
如何检查IIS 6管理兼容功能是否已经安装?
使用vb.net,c#或vbscript,如何检查IIS 6管理兼容性功能及其子图是否已安装在运行IIS 7.x? 的机器上 解决方案 我使用注册表研讨会(比较注册机构)进行了一些测试,并找到了以下测试: 如果安装了IIS 7.X,则以下注册表密钥包含有关已安装子组件的信息: hkey_local_machine \ Software \ Microsoft \ inetstp \ components 每个安装的功能都以DWORD 0x00000001的值表示.如果未安装功能,则缺少该值. 对于Web管理工具,值名如下: Web Management Tools IIS 6 Management Compatibility IIS 6 Management Console (LegacySnapin) IIS 6 Scripting Tools
0 2024-04-21
编程技术问答社区
无法加载文件或组件'System.Web.Http.WebHost'。
将MVC网页部署到我的IIS后,我会收到以下错误: Could not load file or assembly 'System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. 我已经进行了以下更改以防止此问题: 设置copy local = webhost true 添加了Nuget的WebAPI 2.2 system.web.http.webhost存在i bin文件夹 我的web.config具有以下依赖设备: 代码:
0 2024-04-21
编程技术问答社区
ThreadPool.SetMinThreads在IIS托管的应用程序中不起作用
我具有设计为Web API的ASP.NET 4.6应用程序.它有一个长期运行的操作,大约需要60秒,但是此操作并没有大量加载,让我们对像Thread.Sleep(60000)的成像进行成像. 目前,此操作不能偶然,因为它取决于第三方非ASENC库,因此它阻止了执行此操作60秒的线程.当同一时刻将超过50个请求发送到应用程序时,问题就变成了新的请求,在队列中等待(有时为400个).我试图增加这样的线程池线程的最小和最大数量: ThreadPool.SetMinThreads(300, 300); ThreadPool.SetMaxThreads(500, 500); 这些值已成功更改,如果我在IIS Express上运行应用程序,则应用更改,并且新线程非常快速(大约3秒),所有请求都已处理,每个人都很高兴: 但是,如果我在IIS 10上运行该应用程序,则仅分配40-60个线程,其余的请求已排队: 托管的应用程序 如何正确托管应用程序? 还有其他方法可以实现相同的
0 2024-04-21
编程技术问答社区
应用程序因堆叠溢出而崩溃
这个错误杀死了我.我无法在application_onerror捕获此错误.我唯一能够收到的消息是事件查看器日志. Application: w3wp.exe Framework Version: v4.0.30319 Description: The process was terminated due to stack overflow. Faulting application w3wp.exe, version 7.0.6001.18000, time stamp 0x47919413, faulting module nlssorting.dll, version 4.0.30319.235, time stamp 0x4da3fc88, exception code 0xc00000fd, fault offset 0x000020d4, process id 0x%9, application start time 0x%10. 我有一个非常大的应用程序,并
0 2024-04-21
编程技术问答社区
IIS7文件映射-.asax, .ashx, .asap
iis使我们还可以配置ASP.NET文件映射.因此,除了ASPX外,IIS还调用ASP.NET运行时,当请求具有以下文件扩展名时: a).ASCX-> .ASMX扩展名用于请求用户控件. 由于无法直接访问用户控件,因此如何以及为什么有人向用户控件发送请求? b).ashx->此扩展程序用于HTTP处理程序. •但是为什么要直接请求.ASHX页面而不是在配置文件中注册此处理程序,并在请求使用某些(非ASHX)扩展名的文件时将其调用? •此外,由于可以注册几个HTTP处理程序,因此ASP.NET将如何知道如果他们全部使用ASHX扩展程序,该处理程序将如何调用? •请求的ASHX文件包含什么?也许是HTTP处理程序类的定义? •我知道我们如何注册http处理程序时要调用非ASHX页面,但是我们如何为ASHX页面注册HTTP处理程序? c).asax->此扩展名用于请求全局应用程序文件 •我们为什么要直接致电global.asax? •
0 2024-04-21
编程技术问答社区
ASP.NET MVC4 + Razor on Mono + EF 6 DateTime crash
我正在尝试使用Mono运行应用程序.它在IIS上运行良好,但我希望它在单声道上运行.但这总是把它扔给我: "文章"上的"创建"属性无法设置为" system.string"值.您必须将此属性设置为" system.dateTime"类型的非零值. 事实是: public Article[] Select(int number) { return DbContextProvider.Current.Set() .OrderByDescending(n => n.CreateDate) .Take(number) .ToArray(); } 无处可用于System.String.实际上,它被转换为字符串的唯一位置是: @using BaseSite.Extensions.DateTimeExten
0 2024-04-21
编程技术问答社区
REST WCF流的下载速度非常慢,有65535(64KB)块,不能更改。
我们有一种WCF方法,该方法返回流通过REST暴露的流. 我们将定期下载(从网站)与WCF方法进行了比较,并为70MB文件找到了以下内容: 在常规站点中 - 下载〜10秒-1MB块大小 在WCF方法中 - 花了20秒 - 块尺寸始终为 65,535字节. 我们有一个自定义流实际流到另一个产品中,这会使时间更糟 - 常规站点1分钟,而WCF则需要2分钟. 因为我们需要支持非常大的文件 - 它变得至关重要. 我们停止了调试,发现WCF调用的流的方法始终具有65,535 - ,这会导致慢slowness . 我们尝试了几种服务器配置 - 像这样: 端点:
0 2024-04-21
编程技术问答社区
.Net MVC自定义错误页面在IIS8中不工作
我有一个.NET MVC应用根据其违规定制.当通过DEBUG中的VS运行应用程序时,以及我在IIS(6.1)中的Localhost上配置网站时,这一切都是在本地运行良好的. . 然后,我将其部署到安装IIS 8的服务器上.最初,我得到令人讨厌的,默认500错误页面:进行了一些研究后,我发现我可以将以下内容添加到Web.config至少会给我我的友好错误页面,尽管没有自定义文本: 我正在使用以下过滤器完成自定义错误消息: public class GlobalExceptionFilter : FilterAttribute, IExceptionFilter { public void OnException(ExceptionContext filterContext) { if
0 2024-04-21
编程技术问答社区
ASP.NET/IIS: 登出所有用户
在IIS上运行的ASP.NET 3.5应用程序中,我如何强制所有当前已登录和经过身份验证的用户的"删除验证"? iisreset似乎没有解决问题! 解决方案 ASP.NET身份验证旨在由于使用cookie而设计为IISRESET的弹性 - 执行IISRESET将清除任何内存信息,但下次用户要求您网站上的页面,他们将发送其身份验证令牌,如果该令牌(如果没有时间)仍然有效,服务器将重新认证它们. 您可以编写一些可以在重新启动后有效记录用户的内容,例如(例如)将应用程序启动时间存储在Application_Start中的全局变量中,然后将用户LastActivityDate与该值进行比较 - 如果是在开始时间之前,您可以在Application_SessionStart或Application_BeginRequest中调用适当的登录方法. 其他解决方案 更改身份验证表格名称将需要所有用户的新身份验证. 来自:
0 2024-04-21
编程技术问答社区