Tag: iis

IIS应用程序池回收触发器:没有足够的存储空间可用于完成此操作(Azure应用程序服务)

我在Azure应用服务上运行ASP.Net网站,每次应用程序池回收发生时都会挂起。 我已经检查过,可用的存储空间,我使用的是50 Gb中的大约5个,所以这应该不是问题。 请参阅下面的堆栈跟踪。 有没有人有想法? 我已经向微软支持部门提出了这个问题,他们无法回答这个问题:-( 最糟糕的情况是,我可以阻止System.Diagnostics.Eventing.EventProvider.EtwRegister()调用吗? 非常感谢对这一个的帮助! Exception message: The pre-application start initialization method Start on type EnvSettings.SettingsProcessor threw an exception with the following error message: The type initializer for ‘Microsoft.Web.Hosting.Tracing.AntaresEventProvider’ threw an exception.. at System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection`1 methods, Func`1 setHostingEnvironmentCultures) at System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods) at System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) at System.Web.Compilation.BuildManager.ExecutePreAppStart() at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, […]

如果有引号,则从部署对话框(而不是PowerShell)进行MS部署不起作用

在我的Visual Studio 2010 SP1Rel中,MS Web部署突然停止使用此错误: Unrecognized argument ‘Web’. All arguments must begin with “-“. 参数“Web”指的是参数“默认网站”,即如果路径包含空格,则无法部署Web部署。 这工作到今天。 如果我将我的网站重命名为DefaultWebSite(无空格),则错误消息将更改为: Unrecognized argument ‘Source=10.10.10.1\MSSQLSERVER,1432;Initial’. All arguments must begin with “-“. 关于同一错误还有其他问题但情况不同。 我正在使用内置的Web部署对话框。 相同的错误,但对于批处理脚本: MSDeploy批处理文件不再处理引号相同的错误,但在powershell中: 当参数有空格时,如何从powershell调用msdeploy? 这些问题与安装VS 2010 SP1有关。 我没有安装SP1。 它可能已自动安装在Windows更新中。 使用MS部署对话框时如何解决此错误(在VS中右键单击项目并单击“部署”)?

“System.Web.HttpException:此上下文中的响应不可用”仅在IIS中

我在global.asax.cs Application Start中使用了Http.Current.Response 。 当我在我的电脑上执行时,它工作正常没有任何问题。 但是,当我尝试将其与Windows Server 2008 R2一起放入IIS时,我发现它发出以下错误。 它的代码是 public static void SetCookie(string key, string value, int dayExpires) { HttpCookie encodedCookie = HttpSecureCookie.Encode(new HttpCookie(key, value)); encodedCookie.Expires = DateTime.Now.AddDays(dayExpires); HttpContext.Current.Response.Cookies.Remove(key); HttpContext.Current.Response.Cookies.Add(encodedCookie); } 我想找出为什么它在我的系统中执行,而不是在IIS中执行。 谢谢

使用服务器文件的路径时,何时需要使用后退或正斜杠(单或双)?

关于以下代码示例: string baseLocation = HttpContext.Current.Server.MapPath(“/”); const string templateName = @”//temp//ExportTemplate.xlsx”; const string generatedLocation = @”{0}//temp//{1}”; var fileName = string.Format(“Export-{0}.xlsx”, DateTime.Now.Date.ToString(“yyyy-MM-dd”)); var newFile = String.Format(generatedLocation, baseLocation, fileName); File.Copy(baseLocation + templateName, newFile, true); 我们在生产服务器和本地开发环境(通过IIS中的站点)上使用它。 两者都运行IIS 7.5。 代码在生产中正常工作,但在本地开发中抛出错误: Access to the path ‘C:\Path\To\Site\//temp//Export-2013-01-29.xlsx’ is denied. 该文件是在本地dev上正确创建/复制的,但由于路径中的斜杠不正确,我猜这是错误的。 应用程序池标识具有对“temp”文件夹的完全访问权限。 这提出了几个问题: 在这种情况下,’//’对路径做了什么? 我理解’\’是逃避反斜杠的方法,但’//’没有意义。 两个环境的配置是否存在差异,这使得生成的路径在生产服务器上正常工作但在本地开发中失败?

Visual Studio MVC平台 – x86和x64?

我们有一个非常烦人的问题,大约一个月前开始,我们可以在一个需要自动代码生成/脚手架的MVC项目中添加一个控制器。 我们今天发现它与平台有关。 最初,它设置为任何CPU,对我来说似乎是正确的设置。 但是,我们将其设置为x86,因为我们的Visual Studio版本是32位,我们可以再次添加控制器。 添加了一个构建的控制器,然后去查看应用程序,它给出了以下错误: 无法加载文件或程序集“仪表板”或其依赖项之一。 尝试加载格式不正确的程序。 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息:System.BadImageFormatException:无法加载文件或程序集“仪表板”或其依赖项之一。 尝试加载格式不正确的程序。 Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Assembly Load Trace: The following information can be helpful to […]

使用大量内存的IIS应用程序池进程

我的一个IIS应用程序池进程有一个非常奇怪的问题。 我最近得到了一个System.OutOfMemoryException错误,并且我一直试图找出究竟发生了什么。 基本上我有一个脚本,它使用Web服务从我们的DAM获取文件。 然后检查文件存储一个字节数组,然后使用Response输出文件。 唯一一个遇到问题的是PDF,当它们超过20MB时,它们似乎有时会导致错误。 如果我增加应用程序池中的内存,它会暂时解决问题。 我看了w3wp.exe进程,看到有时当我运行这个脚本时,它将内存增加到400MB,我们拥有的最大文件是45MB,这将导致这种类型的行为发生。 问题似乎每天晚上都会消失,早上它会工作一段时间然后再开始做同样的事情。 这个应用程序是c#asp.net应用程序。 它在sharepoint内部运行。 在观看了一段时间后,我注意到,由于这些PDF在浏览器窗口中呈现,直到文件完全下载,它才会从内存中释放。 这是有道理的,但我可以看到这有点像我的问题。 如果我有几个人加载文件,平均(没有文件下载)内存使用量为385,000 kb。它可以轻松达到900,000-1,100,000 KB,这是应用程序池的限制。 我不是在寻找一个确切的答案,而是更像是一个方向,因为我完全没有想法。

更新ASP.Net MVC的资源字符串不会更改输出

我试图修改现有应用程序的resx文件的字符串值。 除了更改字符串值以替换单词(从“技术人员”到“代理人”)之外,我没有做任何其他事情。 文件名和权限相同,即使结构和命名约定相同。 现在,这些更改不会反映在IIS中。 我重新启动了应用程序池,刷新了应用程序,双重检查了权限。 任何地方似乎都没有错。 我甚至在较旧的类似问题中尝试了这些建议,但没有运气。 我不确定,如果我需要重新编译整个解决方案,尽管如此,我认为情况不应该如此。 我需要这样做吗? 另外,我是否必须从头开始重新发布网站,或者我可以只替换IIS文件夹中的重新编译文件? 还是我还缺少一些其他步骤?

对Web服务的访问控制

这是我希望实现的目标: 我的ASP.NET Web服务托管在名为// service的服务器上。 我想通过服务器和应用程序来控制对Web服务的访问。 我的意思是,如果我在名为// web1的服务器上托管了两个ASP.NET Web应用程序(app1和app2),我只希望// web1 / app1能够调用Web服务。 我知道我可以授予访问// web1的IP地址的权限,但这样可以允许// web1 / app1和// web1 / app2访问Web服务。 我正在考虑使用SSL证书,因为我不希望Web应用程序处理登录名/密码。 在// service上 ,我将授予访问// web1的ip并将客户端证书从// web1映射到Windows帐户,这将只允许来自// web1的应用程序访问。 但是,如何进一步控制对web1 / app1的访问?

IIS上的WCF服务。 如何摆脱URL路径中的“Service.svc”组件?

我在IIS上托管了WCF服务。 出于商业原因,我不能发布此实例的公共URL,但我相信你会得到我的意思: 问题是,为了到达我的端点,似乎我已将Service.svc作为路径段的一部分包含在内 ,即我必须使用这样的URL: http:////Service.svc/ 我怎么能避免这个? 我的意思是,我想通过以下方式访问我的服务: http://// 当我在开发过程中自我托管服务时,我完全能够做到这一点。 最后,但这不是那么超然,浏览到http:////Service.svc URL会显示标准服务信息页面: 有没有办法可以防止这种情况发生?

SignalR跨域和IIS 7.5到集线器的路径只能在服务器上本地工作,如何从外部访问它?

我在我的C#WinForms应用程序中自我托管SignalR Hubs服务器: string url = “http://localhost:8081/”; m_signalrServer = new Microsoft.AspNet.SignalR.Hosting.Self.Server(url); // Map the default hub url (/signalr) m_signalrServer.MapHubs(); // Start the SignalRserver m_signalrServer.Start(); 我的ASP.NET Web应用程序充当SignalR Hubs JavaScript客户端: $(document).ready(function() { $.connection.hub.url = ‘http://localhost:8081/signalr’ var myHub = $.connection.myHub; $.connection.hub.error(function () { console.log(“Error!”); }); $.connection.hub.start() .done(function () { console.log(“Connected!”); }) .fail(function () { console.log(“Could not connect!”); }); }); […]