我有一个ASP。NET MVC 4解决方案。当我尝试使用Visual Studio 2012打开它时,我得到以下错误:
Microsoft Visual Studio
为ASP配置Web https://localhost:。NET 4.5失败。你必须
手动配置此站点的ASP。NET 4.5才能使站点
正确地运行。无法在https://localhost:44300/上找到服务器
本地机器。确保已配置本地IIS服务器
支持安全通信。
尽管解打开了。此外,当我试图从调试菜单运行它时,我得到以下错误:
无法启动IIS Express Web服务器。
指定的起始URL无效。https://localhost:44300/
我无法调试代码。如何摆脱这些错误和调试/运行网站从VS 2012?
@roblll说对了。但对于那些不想挖掘答案的人来说,这就是:
Close Visual Studio (might not be necessary, but it won't hurt).
Navigate to your Documents folder. This is where my IISExpress configuration directory was.
In the config folder, there is a file called the application host. Open that.
Search for the name of your project. It should have been added in there by Visual Studio when it bombed in your previous attempts.
Note that there's a binding for HTTP with the port you intend to use for https.
//Change this:
<binding protocol="http" bindingInformation="*:44300:localhost" />
//to this:
<binding protocol="https" bindingInformation="*:44300:localhost" />
请记住,Visual Studio可能提供了与您期望的不同的端口。只需确保绑定中的端口对应于项目属性的Web选项卡中的端口。
http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx
Jason的Shavers系列文章http://jasonrshaver.com/?tag=/Client+Certificates详细解释了如何设置应用程序主机。配置站点入口,以允许应用程序运行在SSL或标准http。
他建议的一件事是为网站添加两个绑定条目。这就是我所做的。
<bindings>
<binding protocol="http" bindingInformation="*:59945:localhost" />
<binding protocol="https" bindingInformation="*:44300:localhost"/>
</bindings>
他还建议更改其他设置。我的三台机器中有两台都能用。每次我被告知在应用程序主机中手动配置站点时,通常都与绑定有关。(例如多个web应用使用相同端口)
我们的网站也遇到了同样的问题。我们能够在Visual Studio中解决这些问题。我们使用的是2012终极版。
我们看到的潜在问题是,由于某种原因,在启用SSL后,VS为标准url和安全url分配了相同的端口。当我们从TFS中提取代码时,这个问题似乎出现了。
为了补救,我们采取了以下步骤:
Right click the project and go to Properties -> Web
Under the project URL in the Use Local IIS Web Server section, remove the "s" from the URL and Save. (EG. go from https://:44301 to http://:44301. This will allow the next step to work)
In Solution Explorer, select the Project and in the Properties window (press F4 if not displayed) change SSL Enabled to False then back to True. It will generate a new port that is different from the standard URL (In my case, I have 44301 as my SSL and 44305 as my standard)
Navigate back to Properties -> Web and add the "s" back to the project URL.
F5 and ride!
确保未选中覆盖应用程序根URL的复选框。
对我来说唯一有效的解决方案是创建另一个测试项目。然后按照下面的步骤:
Right click the project and go to Properties -> Web
Under the project URL in the Use Local IIS Web Server section, copy the project URL(http:// localhost:59002/) - this is from the test project.
Navigate to the project which is giving this error. Right click the project and go to Properties -> Web.
Paste the project URL in the Use Local IIS Web Server section (URL copied from the test project). Close the test project and save.
Delete the test project and run the project that gave the error. Works after that...
也许不是最好的方法,但这是我能让它工作的唯一方法。我收到这个错误消息后,我重新加载我的笔记本电脑(硬盘崩溃),并从他们所在的服务器上获得了我所有的项目。
在我的情况下,IIS Express应用程序主机。配置文件中几个元素的managedRuntimeVersion属性有一个拼写错误。这是发生在Visual Studio 2012和Visual Studio 2013。我只收到了邮件的第一部分,内容是:
无法启动IIS Express Web服务器。
它在事件日志中记录了一个错误,消息如下:
工作进程未能预加载. net Runtime版本v4.030319。
正确的运行时版本是v4.0.30319(注意第二个周期)。
我采取的纠正措施:
导航到C:\Users\ Documents\IISExpress\config
编辑applicationhost.config
查找配置部分
将任何引用“v4.030319”的内容更正为“v4.0.30319”
在我下次调试web应用程序时,Visual Studio成功启动了IIS Express。
如果使用VS2015或以上版本
确保iisexpress进程没有运行。
确保没有其他进程正在使用所需的端口。你可以通过执行来实现
Netstat -a -b
在控制台中(作为管理员,在开始菜单中键入cmd,右键单击并选择“以管理员身份运行”)。如果您看到状态为ESTABLISHED或LISTENING的条目,则意味着有其他进程正在使用该端口。您需要终止该进程或更改端口。
然后删除以下文件
<<path_to_solution_folder>>\.vs\config\applicationhost.config
注意。vs文件夹可能被隐藏
然后找到<<project-name>>.csproj。用户文件,用文本编辑器(记事本)打开
并确保WebProjectProperties下的IISUrl配置为<IISUrl>http://localhost:XXXXX/</IISUrl>,其中XXXXX是您想要的端口。
在这样做并尝试启动应用程序后,你可能会得到
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
然后转到{项目属性}-> Web,按下“创建虚拟目录”按钮
在我的情况下,我的applicationhost。配置文件以某种方式缺少以下两行代码
<add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
<add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
我也有同样的问题。请遵循以下步骤:
1-在Documents\IISExpress\config中打开applicationhost文件,如果不存在,则添加以下代码
<site name="solutionname" id="2">
<application path="/" applicationPool="solutionname">
<virtualDirectory path="/" physicalPath="physicaladdressofproject" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:xxxx:localhost" />
</bindings>
</site>
2-然后转到项目的根文件,删除使用不同版本的Visual Stdio对项目进行的所有更新
3-下一步进入[root]。vsconfig,删除applicationhost
它将自动创建
4 .运行项目
这对我很管用。
我将提出一个解决这个问题的方法:
1.使用以下控制台命令删除\Documents\IISExpress文件夹:rmdir /s /q "%userprofile%\Documents\IISExpress"
Delete the applicationhost.config file which is placed within the .vs\Config\ folder in your Visual Studio project root folder.
Change the project’s website random URL: within Visual Studio, right-click to the project node in Solution Explorer, then select Properties; navigate through the Web panel, then change the number in the Project Url textbox value.
Add the _CSRUN_DISABLE_WORKAROUNDS Environment System variable with the value of 1 as shown in the following screenshot (thanks to Juan M. Elosegui for reporting this on this SO thread and for the image):
好运!