ASP: VS2015 + IIS Express 10 学习笔记

首先搞清楚 ASP 与 ASP.NET 的区别(.asp与.aspx).

https://msdn.microsoft.com/en-us/library/ms973813.aspx

环境配置:

http://www.cnblogs.com/qrlozte/p/5093422.html

关于IIS Express配置文件的解读上网搜一下就有结果.

Q1:

为什么.asp文件可以运行, 却无法打断点?

A:

http://www.cnblogs.com/qrlozte/p/5131391.html

Q2:

我希望调试的时候我的网站监听局域网上的请求, 而不只是 localhost

A:

首先, 参考 http://www.cnblogs.com/qrlozte/p/5093422.html 进行配置.

其次, 进入Web项目的属性页, 启动选项, 启动URL 设置为你配置的地址. 在你想调试的代码处打上断点, 浏览器浏览到相应页面, 即可成功调试

Ref:

http://blog.csdn.net/hyperhawk/article/details/7359093

Q3:

如何把 IIS Express设为调试时默认WEB服务器?

A:

工具 -> 选项 -> 项目和解决方案 -> Web项目 -> 选择服务器即可

Ref:

http://www.cnblogs.com/haogj/archive/2011/01/08/1930525.html

Q4:

我按照 Q2 的方法把网站配置到192.168.1.101. 并且我通过 Web 项目的属性页 -> 启动选项 -> 选择了 "使用当前页". 调试的时候 VS 默认启动到 localhost 而不是 192.168.1.101. 我想修改 "服务器" 选项, 但一直是灰色的, 不能修改. 怎么办?

A:

这是 VS2013 的一个 BUG (参考: https://connect.microsoft.com/VisualStudio/feedback/details/793989)

已经修复. 通过 工具 -> 扩展和更新. 安装更新包即可.

Ref:

https://msdn.microsoft.com/en-us/library/ms178108.aspx

https://msdn.microsoft.com/en-us/library/58wxa9w5(v=vs.120).aspx

Q5:

报错: 

HTTP Error 500.19 - Internal Server Error

Detailed Error Information:

Module    WindowsAuthenticationModule
Notification    AuthenticateRequest
Handler    PageHandlerFactory-Integrated-4.0
Error Code    0x80070021
Config Error    This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".
Config File    \?E:ASPDemoweb.config

Config Source:

   17:               <anonymousAuthentication enabled="false" />
   18:               <windowsAuthentication enabled="false" />        
   19:           </authentication>

More Information:

This error occurs when there is a problem reading the configuration file for the Web server or Web application. In some cases, the event logs may contain more information about what caused this error.

A:

就如错误信息描述的一样, 是 Web.config和applicationhost.config冲突.

去Web应用目录找到Web.config, 再去IIS目录AppServer(或者C:UsersxxxDocumentsIISExpressconfig)找到applicationhost.config

可以看到, 正如提示中描述的一样

Web.config里有一行

<windowsAuthentication enabled="false" />     

而applicationhost.config中的

<sectionGroup name="authentication">

包含子项

<section name="windowsAuthentication" overrideModeDefault="Deny" />

并且

<security><authentication>

包含子项

<windowsAuthentication enabled="false">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>

可见这两个子项的不一致(并且选项overrideModeDefault="Deny")是导致冲突的原因. 改为相同的内容或者overrideModeDefault改为"Allow"即可.

Q6: 报错

HTTP Error 401.2 - Unauthorized

You are not authorized to view this page due to invalid authentication headers.

Most likely causes:

  • No authentication protocol (including anonymous) is selected in IIS.
  • Only integrated authentication is enabled, and a client browser was used that does not support integrated authentication.
  • Integrated authentication is enabled and the request was sent through a proxy that changed the authentication headers before they reach the Web server.
  • The Web server is not configured for anonymous access and a required authorization header was not received.
  • The "configuration/system.webServer/authorization" configuration section may be explicitly denying the user access.

Things you can try:

  • Verify the authentication setting for the resource and then try requesting the resource using that authentication method.
  • Verify that the client browser supports Integrated authentication.
  • Verify that the request is not going through a proxy when Integrated authentication is used.
  • Verify that the user is not explicitly denied access in the "configuration/system.webServer/authorization" configuration section.
  • Check the failed request tracing logs for additional information about this error. For more information, click here.

A:

正如提示所描述的一样, Web server没有选择用户身份验证的方式.

检查applicationhost.config

<system.webServer><security><authentication>

你可以看到所有的子项enabled都设置为"false". 将其中一个子项设置为"true"即可.

原文地址:https://www.cnblogs.com/qrlozte/p/5093477.html