在我的一个ASP.NET应用程序中,由于下面显示的错误,突然之间我无法在Visual Studio 2013中运行它.它似乎试图从一个甚至不存在的路径打开web.config.我的所有项目代码(包括web.config)都位于C:\ Projects\SourceCode\AFEManager\Trunk\AFEManager.Web下.我在这里找到了许多用户遇到类似错误的帖子,但解决方案似乎有所不同,到目前为止我找不到的任何内容似乎都适用于我的情况.我查看了TraceLogFiles目录和最近的日志文件有五天的时间,所以它显然没有记录任何东西,因为我遇到了这个问题.任何建议表示赞赏.

我正在使用ASP.NET MVC开发一个Web应用程序(一个相当简单的应用程序,只有一个控制器和一些路由;它没有任何花哨的东西).一开始我使用的是Visual Studio 2013和Windows 8/8.1.几天前我切换到Windows 10,我在本地开发机器上运行应用程序时遇到问题(我安装了Visual Studio 2013和2015,但我继续使用Visual Studio 2013进行此项目).
当我启动一个新的实例进行调试时,IIS Express启动,Visual Studio启动所选的浏览器(默认为Edge),但对该站点的请求永远不会返回有效的响应.
我可以在系统托盘中看到,应用程序似乎运行正常.我还和Fiddler一起检查过; 而Fiddler告诉我,浏览器的请求永远不会从本地服务器获得响应.这可能是防火墙的问题吗?
更新
我认为它与Edge-browser和localhost loopback设置无关(此设置已通过about:flags页面启用).此外,我在Windows 10的最终版本下遇到了这个问题.
我希望将所有401错误重定向到自定义错误页面.我最初在web.config中设置了以下条目.
<customErrors defaultRedirect="ErrorPage.aspx" mode="On">
<error statusCode="401" redirect="~/Views/Shared/AccessDenied.aspx" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
使用IIS Express时,我收到了IIS Express 401错误页面.
如果我不使用IIS Express,则返回空白页面.使用Google Chrome的"网络"标签检查响应,我看到当页面为空白时,标题中会返回401状态
到目前为止我尝试使用的是这个SO答案中的建议,因为我使用的是IIS Express,但无济于事.我尝试过使用组合<custom errors>而<httpErrors>没有运气 - 标准错误或空白页仍然显示.
该httpErrors部分看起来像这样的基础上,瞬间链接从上面的SO问题(我还发现了另一种非常有前途的答案却没有运气-空白响应)
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough" >
<remove statusCode="401" />
<error statusCode="401" path="/Views/Shared/AccessDenied.htm" />
</httpErrors>
<!--
<httpErrors errorMode="Custom"
existingResponse="PassThrough"
defaultResponseMode="ExecuteURL">
<remove statusCode="401" />
<error statusCode="401" path="~/Views/Shared/AccessDenied.htm"
responseMode="File" />
</httpErrors>
-->
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
我甚至已经修改了applicationhost.config文件,并修改<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">,以<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated">基于从信息iis.net.在我努力的过程中,我也设法偶然发现了另一个SO问题中描述的这个错误.
如何在Asp.Net Mvc …
error-handling http-error custom-error-pages iis-express asp.net-mvc-3
我不确定这是否可能,但我希望找到一条线索,以确定当前正在执行的代码是否在IIS Express下运行.到目前为止,我的最佳近似值,令人难以置信的hackish,肯定会在某些时候失败/突破:
bool IsExpress =
Request.ServerVariables["SERVER_SOFTWARE"] == "Microsoft-IIS/7.5"
&& Int32.Parse(Request.ServerVariables["INSTANCE_ID"]) > 1000000000;
Run Code Online (Sandbox Code Playgroud)
当然必须有更好的方法.我对Application,Server和Request对象的检查似乎没有揭示可能提供更好洞察力的任何内容.也许我只需要看一些其他对象?
更新:
如果有一种方法可以检测到这一点,我真的很好奇 - 在这一点上它确实是学术性的,我没有迫切需要使用它.最初的问题就是.但本着回应评论的精神,特别是我有兴趣回答本网站上另一个问题/答案的批评:如何搜索服务器的MIME地图.批评是,发布的答案不适用于IIS Express,只适用于传统的IIS实例.IIS Express将MIME配置存储在applicationhost.config XML文件中,我想更新该答案,以便为IIS Express提供返回该信息的方法.我当然可以添加一些从XML中获取适当值的代码(Yay for LINQ to XML!)但我真的想让它变得更聪明.为了清楚起见,我不需要帮助解析该文件 - 只是尝试检测代码当前是否在IIS Express引擎中执行时更优雅.
更新2:
IIS 8.0 Express Beta 本周发布,它进一步表明我的问题中的方法很脆弱并且会破坏.虽然它不是针对特定版本的交易破坏者,但考虑到这一点并尝试确保代码至少与今天的已知版本一起使用将会很好.
我不得不删除我的applicationhost.config,因为VS 1012没有处理他.我该如何创建它?谢谢.
我将ASP.NET Web应用程序更改为使用本地IIS而不是IIS Express.现在重新打开解决方案后,加载应用程序时出现以下错误:
错误:无法打开项目"Atlas2",因为无法创建Visual C#2015编译器.'Atlas2'已经是工作区的一部分.
错误:无法打开项目"Atlas2",因为无法创建Visual C#2015编译器.已添加具有相同键的项目.
有人请帮助我如何重新加载项目?我正在使用Visual Studio Team Services(TFS Online),如果有帮助的话.
当我尝试在Visual Studio 2015中运行ASP.Net Core项目时,会出现Microsoft Visual Studio对话框"项目不知道如何运行配置文件IIS Express".
有没有人知道这个消息,或如何解决它?我搜索过谷歌和MSDN.构建日志或Windows事件日志中没有任何内容.

如果我尝试启动我的.net核心应用程序,我会收到此消息.我知道有很多帖子声称要解决这个问题,但我已经尝试过他们建议的所有方法,但没有一个工作正常.
如果我在调试下进入项目属性并更改端口,那么它将连接一次.然后,如果我再次尝试连接,它将再次给我相同的错误.然后,我可以将端口切换回原始端口,它将加载一次,然后在此之后的任何时间都会失败,直到我再次切换它.任何人有任何想法或修复他们使用?
谢谢!
尝试调试配置为在Visual Studio 2010中使用IIS Express 7.5的Web应用程序时,我收到以下错误"无法启动IIS Express Web服务器"
当使用/ trace:error开关从命令行运行时,我得到以下内容
C:\ Program Files(x86)\ IIS Express> iisexpress.exe/trace:error
启动IIS Express ...
初始化W3服务器启动CTC = 1857831
W3服务器初始化WinSock.CTC = 1857847
W3服务器WinSock已初始化.CTC = 1857847
W3 Server ThreadPool已初始化(ipm已发出信号).CTC = 1857847
无法调用RegisterModule for dll = C:\ Program Files(x86)\ IIS Express\loghttp.dll,mod = HttpLoggingModule
使用hr = 800706ba处理失败
加载全局模块时出错.hr = 800706ba
终止W3_SERVER对象
启动listenerChannel http:0
初始化W3服务器已启动CTC = 1858845
W3服务器初始化WinSock.CTC = 1858861
W3服务器WinSock已初始化.CTC = 1858861
W3 Server ThreadPool已初始化(ipm已发出信号).CTC = 1858861
无法调用RegisterModule for dll = C:\ Program Files(x86)\ IIS Express\loghttp.dll,mod = HttpLoggingModule
使用hr = 800706ba处理失败 …
我在VS2013中加载Web应用程序项目时遇到问题.这个项目依赖于IIS Express,但我不会安装IIS Express,因为我已经安装了IIS.
我可以在.csproj文件中编辑什么来加载这个项目?我试图设置为false,但它不会帮助我解决问题.
谢谢你的建议.
Upd.1:另外,我无法创建新的Web项目 - VS告诉我同样的事情.
iis-express ×10
iis ×5
asp.net ×2
c# ×2
asp.net-core ×1
asp.net-mvc ×1
azure-devops ×1
http-error ×1
web-config ×1
windows-10 ×1