平常使用Visual Studio开发.NET项目,总会有用到一些自定义静态资源文件的时候,由于VS默认情况下,项目编译和生成后不会把静态资源文件复制到输出目录,就需要我们自己手动设置静态文件的属性。操作十分简单,本文作为一个知识小结笔记进行记录。
在某个契机的引发下,对VS解决方案中自动生成的.vs
文件夹产生了兴趣,以前总对这个文件夹不怎么上心,最近正好遇到点情况来搞懂.vs
目录究竟有什么作用。
在ASP.NET当中,如果遇到用户已经登录,但是获取不到用户名(User.Identity.Name=""
),并且User.Identity.IsAuthenticated
的值依然为false
的情况,或者调用FormsAuthentication.SignOut()
方法注销用户账户,但是获取User.Identity.IsAuthenticated
后得到的值还是为true
。只要是遇到类似这两种无法实时获取用户身份信息的情况,就要注意当前用户的身份信息是否还没有进行创建/更新,是否没有进行重定向重新触发身份验证事件?这个问题主要和ASP.NET的身份验证机制有关!
这还是我第一次遇到这个错误,以前都没太注意配置文件中元素的放置顺序。这次在调试一个ASP.NET MVC项目的时候,突然就爆出HTTP Error 500.19错误,提示无法访问请求的页面,因为该页的相关配置数据无效。
如果某天发现网站的URL突然多了个小尾巴:AspxAutoDetectCookieSupport=1,那么肯定是设置了配置文件中sessionState元素的cookieless特性,并且将它的值为"AutoDetect"。
以前开发ASP.NET项目的验证码功能,都是自己用GDI+去绘制。现在都是使用质量比较高的插件,除了省时省力,安全性也比自己瞎搞的高,我自己个人项目中比较常用的是BotDetect CAPTCHA这个插件,当然还有其他十分优秀的验证码插件,感兴趣的可以网上找找。
之前在我写的一篇关于URL重写模块的文章中,看到评论有咨询这样的一个问题:想要实现访问A站点的API,让B站点的API响应,并且是以HTTP POST请求的形式,但是设置rewrite不起作用,依然是A站点的API响应,如果使用redirect的方式,会以GET方式访问B站点API并返回404。要想实现不同站点之间的POST请求重写,最主要的技术点有两个,一个是服务器级别的URL重写,另一个是用ARR做反向代理。
在使用Web Deploy发布网站到阿里云服务器的时候,visual studio提示发布失败,本以为是个小问题,结果花费了我一个小时。按照官方推荐的方法都无法解决,最后将全部文件发布就莫名其妙可以了。
服务器上安装了MySQL后,发现某些ASP.NET网站打开会出现machine.config配置错误,后来在解决问题的过程中发现,这可能是MySQL的一个BUG,不过倒是有解决的方法,国外很多猿类也遇到这个问题,经过我的研究整理出了几个解决方法,都是十分有效的,主要还是和MySQL Connector/NET这个驱动程序有关系!
为了对比新版本的BlogEngine.NET,特意通过WEB平台下载和安装3.2旧版本,结果无法运行,出现HTTP 500.19错误,错误代码为0x80070032。其实以前接触BlogEngine.NET时候也常常遇到这个问题,就是应用程序池的.NET Framework版本没有选择正确!
最近无意中看到BlogEngine.NET 3.3.5.0 已经发布了,提供了新的标准模板,于是下载到一台测试服务器中看看效果,发现后台的某些菜单无法打开,会出现404.2或者404.0错误。根据不同情况,主要和IIS的ISAPI和CGI限制的设置,处理程序映射模块,URL地址错误有关系。
在首次使用ARR的时候,曾经踩过一个坑,结果导致测试服务器IIS上的所有网站都无法正常打开,排查发现网站请求的js和css文件都返回404,有的网站甚至连页面也返回HTTP 404。后经过研究,发现造成此问题的原因在于首次创建ARR的Server Farm时,iis会引导我们创建一个默认的重写规则,如果不仔细看点确定就踩到坑里去了。