Articles of asp.net mvc

解决Web服务器连续加载问题

我是一个pipe理Web服务器的初学者。 我正在尝试学习如何解决在运行IIS 7.5的.NET 4.0 MVC网站的Windows Server 2008 R2中的一个问题。 我pipe理的网站已经在GoDaddy共享主机scheme上运行了好几个月。 网站的最后一次代码更新大约在6个星期前。 几天前,该网站停止工作,从一分钟到下一个。 从字面上看,这更像是下一秒的一秒钟。 其中一个网站pipe理员加载了一个页面,点击了一个链接,下一个页面从未加载过。 从此以后一直在下降。 我花了约。 在4个不同的GoDaddy技术人员的电话上5个小时。 每次他们确定这是在网站编程的东西。 (我们有两个人可以访问该站点的FTP,当它停止工作时,我们都在上class的路上。) 为了testing它,我发布了网站到我们的内部开发服务器,它的工作。 然后我重新发布到GoDaddy共享主机,它仍然没有工作。 主要的问题是网站加载和加载,永远不会出现。 我想也许我会尝试另一个主机,所以我已经在Rackspace(Win 2K8 R2)上安装了一个Windows VM服务器,安装了IIS 7.5,并build立了一个基本的站点。 如果我将一个基本的index.html文件加载到文件夹中,我可以在Web服务器本地和我的办公室公开地看到“Hello world”消息。 但是,只要我将ASP.NET内容加载到文件夹中,我就再次遇到连续加载问题。 正如我之前所说,在内部的开发服务器(这也是Win 2K8 R2 W / IIS 7.5)的网站工作正常。 目前,我已将主域redirect到我的办公室IP,创build了一些防火墙规则来转发数据包,并成功从dev服务器托pipe网站。 但这不是一个长期的解决scheme。 我花了几个小时在网上寻找解决scheme,并尝试了很多事情。 但我没有必须解决像这样的虚拟主机问题,我没有得到任何明显的错误消息。 我正在寻找方法来解决这个问题,在IIS中,或者find错误消息或日志,或者可能指向我的问题。 但是我缺乏pipe理Web服务器的知识正在被阻碍。 谢谢!

IIS 7:从不存在的子域redirect到子文件夹

我正在开发一个ASP.NET MVC多租户应用程序。 现在我设法创build了dynamic的子文件夹,比如有一个使用用户名“bob”注册并获得以下网站: domain.com/bob 我的下一个目标是提供子域名:bob.domain.com而不是子文件夹。 我发现使用ASP.NET和DNS WMI创builddynamic子域是非常复杂的。 有没有办法告诉服务器,它必须从bob.domain.comredirect/重写到domain.com/bob?

使用ASP.Net MVC 3时,请求过滤中必须允许哪些文件扩展名?

我已启用请求筛选,并且“允许未列出的文件扩展名”设置为false。 当请求任何正常的path,包括“ http:// localhost ”我得到一个404.7错误 – “请求过滤模块被configuration为拒绝文件扩展名”。 如果我设置“允许未列出的文件扩展名”为true,那么该网站工作正常。 我知道“ http:// localhost / ”映射到Views / Homes / Index.cshtml“和.cshtml是明确允许的。 我想弄清楚哪个文件扩展名导致了这个问题,但在日志中找不到任何东西。 我有所有55“默认”文件types设置为允许。

IIS 7.5有select地覆盖我的错误响应页面

使用Windows 2008r2,IIS 7.5,我有一个使用Windows集成身份validation(WWW-Authenticate:NTLM,协商)的应用程序。 在我的ASP.NET MVC代码,我覆盖IIS错误页面输出… protected void Application_EndRequest(Object sender, EventArgs e) { HttpContext context = ((HttpApplication)sender).Context; if (context.Response.Status.Substring(0, 3).Equals("401")) { HttpApplication app = (HttpApplication)sender; string returnUrl = Response.ApplyAppPathModifier("~/OpenId/AskUser").ToString(); string url = new Uri(this.Request.Url, Response.ApplyAppPathModifier("~/Account/Login?returnUrl=" + returnUrl)).ToString(); app.Response.ClearContent(); app.Response.Write(string.Format("<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"utf-8\"><meta http-equiv=\"refresh\" content=\"0;URL='{0}'\"><title>Error Authenticating</title><script language=\"javascript\">self.location='{0}';</script></head><body>Error Authenticating</body></html>", url)); } } 目标是在非Windows计算机或移动设备上(或在Windows PC上使用Firefox)将用户redirect到基于表单的login名,而不是通过Windows集成身份validation预期他们的Windows凭据。 我在服务器上与IIS 7.5遇到的问题是,即使此EndRequest事件正在触发(我可以从X-DEBUG标头中看到我插入代码并看着fiddler),发送回客户端的HTML输出是HTTP状态代码401的IIS 7.5默认错误页面,而不是我输出的HTML页面。 第一次发送请求(401响应的第一个请求)它工作正常,但如果用户用空或错误的用户名/密码组合命中确定,后续401响应不包括适当的输出响应(默认的IIS […]

使用WIN7 PC而不是Windows 2003服务器

简单的问题,就托pipe一个基于Asp.net-mvc / SQL Server 2008 R2 Express的应用程序而言,一台function强大的Windows 7 PC将会怎样? 我只是想知道是否有什么我在这里失踪,作为一个应用程序开发,而不是一个系统pipe理员。 该应用程序在全国大约50个地点的银行networking中为约300名用户提供服务。 我们目前运行在Windows 2003服务器上,该服务器上有很多其他的事情。 在那里设置Asp.net Mvc3是一件很痛苦的事情,但它工作正常。 他们想把一台机器专用于我的应用程序,但服务器可能需要数月的处罚和文书工作,所以快捷方式是购买一台电脑。

更改用户IIS运行

我正在尝试更改用户IIS运行结束。 我读了IIS可能运行使用IUSR_computer_name用户,但我不知道这个规则是否适用于IIS 7.0 问题是,试图映射整个文件系统树,我得到一些文件夹的访问被拒绝。 我需要访问这些文件夹。 所以,我决定改变IIS正在使用。 有人可以给我一点关于如何做到这一点的暗示。 我花了整整一天的时间尝试一套configuration没有成功,现在我结束了最后一次尝试。

在IIS(7)中不允许使用DELETE方法?

一些如何开发ASp.net mvc应用程序,DELETE方法在VS服务器上正常工作,但是,当我在IIS中testing它。 它不工作,并绝对返回一个405错误.. 和目前,我不知道在哪里,以及如何让IIS允许我的DELETE / PUT HTTP方法在我的应用程序…. 有人能帮助我吗?

ADFS像一个依赖方标识符黑名单一样行事?

在我们的开发环境中,我们在ADFS 2.0中configuration的依赖方遇到问题,这让我感到困惑。 这就好像有一个标识符黑名单一样。 我们现在有3个开发者正在开发这个function(在Win2kR2 for ADFS,Win7 Pro / VS2010 / MVC2 / C#for devs上的新configuration)。 ADFS在Domain2而所有的开发盒在Domain1 。 Domain2信任Domain1但不是相反的(不是这个问题)。 我创build了3个信任,每个开发人员一个。 每个开发人员的信任端点和标识符都是相同的( https://DevBoxFQDN/AppName/ )。 最初设置时,我只是使用DevA作为testing案例,直到我开始工作。 一旦DevA ,我就添加了DevB但是通过将DevB's标识符添加到DevA RP DevB's了不正确的DevA 。 最终的结果是,当你试图在DevB's web应用上进行身份validation时,redirect到应用程序,它到了DevA's盒子。 混淆了configuration,但是我会称这是DevB框的成功testing案例。 一旦我意识到这一点,我从DevA RP中删除了DevB's标识符,并创build了DevB和DevC RP(针对端点和标识符指向https://DevB.FQDN/AppName/和https://DevC.FQDN/AppName/ )。 在这一点上,奇怪的事情发生了。 这适用于DevC ,就像DevA 。 但是, DevB获取事件ID 184/364,指示DevB标识符不正确。 大量的debugging和search可能的问题导致没有用。 作为一个盲目的刺,我们简单地在DevB框上为https://DevB.FQDN/AppName2/创build一个新的虚拟目录(我们简单地在虚拟目录/应用程序名的末尾添加了一个2 ,指向相同的位置作为另一个,并具有相同的设置),并对应用程序的web.config文件进行了相同的更改。 在ADFS中,我编辑了端点和标识符以添加2 。 这种变化和这种变化本身会导致DevB正常工作。 所以这个洞察力大部分的可能性,我们怀疑不适用于我们(防火墙,搞砸证书/ SPNs等),论坛post留给我们。 如果我们改回来删除2 ,那么它又会破坏。 没有其他变化! 为了彻底,我们将DevB机器恢复为基于映像的备份,从“正常工作”的时间开始,但在DevA RP之下 – […]

ASP.MVC网站制作服务器configuration的最佳实践

在生产需要连接到SQL Express的生产Windows 2008 R2服务器上创build新网站时,是否应该为应用程序创build自定义标识以使其在NetworkService下运行? 我发现IIS应用程序池高级设置对话框build议应该使用networking服务,但如果这被认为是最佳实践,应该如何configuration应用程序以连接到本地SQL Server Express数据库? 如果我使用集成安全连接到数据库然后我需要创buildNT AUTHORITY \ NETWORK SERVICE的login,这不正确,因为我可能有其他网站托pipe使用不同的本地数据库。 那么我应该为每个需要访问数据库的网站创build一个SQL帐户,然后在Webconfiguration中设置用户名和密码? 如果这是我应该或者可以在Webconfiguration文件中encryption密码的最佳方式? 我一直在这里search,我似乎无法find一个明确的看法。 我在MSDN / TECHNET和IIS.NET上的相关信息的search似乎并不富有成效,所以如果任何人都可以链接最佳做法/参考材料,将不胜感激。

ASP.NET 4 IIS 7 Web服务器超时

我在同一个Web服务器上有3个应用程序。 其中两个configuration在单独的ASP.NET 4应用程序池中,其中一个位于ASP.NET 2应用程序池中。 我在白天访问这些应用程序时遇到了间歇性超时。 为了追踪这个超时,我build立了一个ping监控服务(motive.com)。 以下是超时货币日志的示例: 应用程序date停机的主要原因 APP2 2012年9月19日,14:51 4分钟50秒connect()超时! APP1 19-Sep-2012,14:51 4分钟50秒connect()超时! APP2 2012年9月19日14:11 2分钟50秒无法连接到主机 APP1 19-Sep-2012,14:11 2分钟50秒无法连接主机 APP2 2012年9月19日,9:17 2分钟41秒无法连接到主机 APP1 2012年9月19日,9:17 2分钟41秒无法连接到主机 … 正如你所看到的,两个ASP.net 4池同时超时。 我也在监视ASP.NET 2.0应用程序池网站,我没有一个单一的超时! 没有任何模式与其发生的时间(日/夜)有关。 超时之间的时间间隔也不会遵循一个模式,有时会在40分钟之后发生,其他时间则会持续几个小时。 超时时间不会超过5分钟,但是也随机地从2到5分钟不等。 起初我认为这可能与应用程序池回收有关,但是我已经检查并且回收设置在24小时后发生并且被禁用用于其他事件(记忆峰值等)。 该网站很less访问(这是在betatesting),所以没有大量的访问,工人的需求,内存消耗等。 我也检查了IIS日志,并且在监视服务报告的停机时间内有2到5分钟的间隔,但没有错误消息。 我也检查了Windows事件日志,并没有在系统和应用程序事件中发现任何exception。 我现在真的很绝望 如果有人能帮助我,我会非常感激。 最好的祝福。 Eduardo de Freitas