我是一个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服务器的知识正在被阻碍。 谢谢!
我正在开发一个ASP.NET MVC多租户应用程序。 现在我设法创build了dynamic的子文件夹,比如有一个使用用户名“bob”注册并获得以下网站: domain.com/bob 我的下一个目标是提供子域名:bob.domain.com而不是子文件夹。 我发现使用ASP.NET和DNS WMI创builddynamic子域是非常复杂的。 有没有办法告诉服务器,它必须从bob.domain.comredirect/重写到domain.com/bob?
我已启用请求筛选,并且“允许未列出的文件扩展名”设置为false。 当请求任何正常的path,包括“ http:// localhost ”我得到一个404.7错误 – “请求过滤模块被configuration为拒绝文件扩展名”。 如果我设置“允许未列出的文件扩展名”为true,那么该网站工作正常。 我知道“ http:// localhost / ”映射到Views / Homes / Index.cshtml“和.cshtml是明确允许的。 我想弄清楚哪个文件扩展名导致了这个问题,但在日志中找不到任何东西。 我有所有55“默认”文件types设置为允许。
使用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 […]
简单的问题,就托pipe一个基于Asp.net-mvc / SQL Server 2008 R2 Express的应用程序而言,一台function强大的Windows 7 PC将会怎样? 我只是想知道是否有什么我在这里失踪,作为一个应用程序开发,而不是一个系统pipe理员。 该应用程序在全国大约50个地点的银行networking中为约300名用户提供服务。 我们目前运行在Windows 2003服务器上,该服务器上有很多其他的事情。 在那里设置Asp.net Mvc3是一件很痛苦的事情,但它工作正常。 他们想把一台机器专用于我的应用程序,但服务器可能需要数月的处罚和文书工作,所以快捷方式是购买一台电脑。
我正在尝试更改用户IIS运行结束。 我读了IIS可能运行使用IUSR_computer_name用户,但我不知道这个规则是否适用于IIS 7.0 问题是,试图映射整个文件系统树,我得到一些文件夹的访问被拒绝。 我需要访问这些文件夹。 所以,我决定改变IIS正在使用。 有人可以给我一点关于如何做到这一点的暗示。 我花了整整一天的时间尝试一套configuration没有成功,现在我结束了最后一次尝试。
一些如何开发ASp.net mvc应用程序,DELETE方法在VS服务器上正常工作,但是,当我在IIS中testing它。 它不工作,并绝对返回一个405错误.. 和目前,我不知道在哪里,以及如何让IIS允许我的DELETE / PUT HTTP方法在我的应用程序…. 有人能帮助我吗?
在我们的开发环境中,我们在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之下 – […]
在生产需要连接到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似乎并不富有成效,所以如果任何人都可以链接最佳做法/参考材料,将不胜感激。
我在同一个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