IIS


Run Classic ASP on Windows 10 and Azure App Service

ASP is an old technology of Microsoft that even before .NET was born. I have used ASP 3.0 to create my first personal blog in 2003. Nowadays, it is hard to find ASP web applications still active on the internet. But we can still bring the 1996's classic ASP back to life on today's Windows 10 and even in Azure. Some history ASP and its successor, ASP.NET are completely different. ASP uses the …


Path Caveat with ASP.NET Core 2.2 IIS Hosting

ASP.NET Core 2.2 has been in place for some time, with a new feature that can use the new AspNetCoreModuleV2 and deploy with InProcess mode on IIS to dramatically improve performance. These days Azure App Service finally completed the deployment of this new version of the module, I configured my blog to the new module, and it exploded in production. Let's see why and how to solve it. If you don' …


Prevent Image Hotlinking in ASP.NET/Core Applications

Introduction As a website developer, we sometimes don't want the images on our own website to be directly referenced and showed on other's website. It can cause a lot network bandwidth for our datacenters in some cases, which means costing money for us to pay for the one who use our images. For example, your website is A.com, you have an image on http://a.com/facepalm.jpg and B.com used your …


How to Redirect Old Domain URL to New Domain in IIS

When you are changing the domain name for your website, you are definitely going to solve the migration problem. You can not just stop DNS on your old domain, because this will cause your indexed pages being deleted by search engines. The correct way is to tell the search engine that you have a new domain name now, which is when the user access an old URL, redirect it to the new URL. Take my …


如何在IIS管理器(inetmgr)中连接Azure WebSite

我们在Azure上建出来的网站看起来只能用Azure的网页版界面管理,或者Visual Studio的Server Explorer管理。如果想通过IIS的管理界面配置我们的网站,似乎很多小伙伴只能考虑用Azure VM建网站。其实不然。 首先,Windows 8.1的IIS管理器默认情况下确实不能连接Azure,所以要装一个插件:http://www.iis.net/downloads/microsoft/iis-manager 安装完成后,打开你本机的IIS管理器,在File菜单下就会多出来一个: 在Server name里面输入你的Azure网站的SCM地址,即 网站名称.scm.azurewebsites.net:443 Site name一定要和网站名称一致 然后去Azure Portal上download一个publish profile 在这个 …


Azure Website Showing 404 for .woff Fonts in IE

If you are using Website on Microsoft Azure (Currently renamed to Web Apps), you will find the .woff web font is not working in IE, it returns 404. Based on my experience, this is because IIS is not configured to use the correct MimeType. However, we can not operate the IIS on Azure, there's no RDP into an Azure Web Apps backend machine. How can we do that? In fact, after IIS7, the MineType is …


Get Clear Password from IIS App Pool

Sometimes, in order to get necessary permissions, we will assign domian accounts or local accounts for IIS app pool. For example, it usually happens for SharePoint deployment. However, this is not a secure way, because the password for these accounts are saved in clear text. For local accounts, the password is not readable. But if you are using domain accounts. The IIS Admin can read your …


简单粗暴有效解释ASP.NET中的线程池是怎样处理Http请求的

自从有了.NET 4.5,我们又多了一个装逼语法:async,await。但如果错用就会装逼不成反变傻逼。首先我们得明白在ASP.NET中async await所针对的问题,这样才能正确的装逼。于是我们就不得不先研究一下线程池。 在IIS服务器上,处理Http请求的是线程,和Windows的其他软件一样,干活的永远是线程,而不应该说是进程。一个线程同时只能处理一个request,而web上的request不可能同时永远只有一个,所以线程需要和他的小伙伴们一起组成线程池,才能保证网站的响应。当一个线程处理完了手头的请求,它就被释放掉了,于是如果再有新的请求进来他就能再去处理。但如果当线程用完了,并且他们正在处理的请求都没完成,网站就卡住了,用户就只能等出翔。这时候IIS就会返回一个HTTP 503爆给用户。 打个比方,IIS服务器就好像银行,Http请求就好像顾客,银行开的窗口数量就是进 …


在IIS服务器上安装和配置Web Deploy (WS2008R2)

作为ASP.NET开发者,部署应用到测试或生产环境是家常便饭。不知道大家平时都是怎么部署网站的?手工拷贝文件?FTP?还是高端的package解压?对我来说,最方便的还是WebDeploy,它可以让我从Visual Studio中一键部署网站到IIS服务器,并且智能判断哪些文件是新增的,哪些是需要修改或删除的。Windows Azure Website就默认支持这样的部署方式。但我们不可能一直在公有云上做开发,如果我们想把这样方便的功能带到本地怎么办呢? 经过开荒,我在Windows Server 2008 R2和Windows Server 2012 R2上都成功配置了Web Deploy。目前用的最多的还是WS2008R2,所以我就带大家来看看如何在这款系统上安装和配置Web Deploy。 首先,你需要在IIS上安装管理服务。 在Server Manager(服务器管理)里面, …


如何在Windows Azure虚拟机上配置外网能访问的FTP服务器

昨天哥被功夫网墙出了翔,一怒之下打算用Windows Azure VM建个FTP来下东西,本来以为只要配置IIS和防火墙再打开Azure Portal的21端口就行的,结果又被Windows Azure爆出了翔(Blow up to shit)。在Azure上配置FTP没那么容易的。 首先,如何安装和正常配置一个FTP我不叙述了,大家可以自己搞定。Azure唯一特殊的就在于开防火墙端口。 1. 你需要知道你VM的外网IP,可以用ping命令,虽然Azure VM不允许被ping,但解析IP还是没问题的。 2. 将IP添加到FTP站点的FTP Firewall Support里面。 3. 由于Data Channel Port是在IIS Root Node上被锁住的,所以还要回IIS Root去配端口范围。这些端口是FTP用来传输数据的(FTP居然不是只用21端口的,虽然 …


Windows 8上IIS8部署WCF服务报错的解决办法

今天被IIS爆出翔了,写了个WCF Service,部署到IIS上,本来觉得是很简单的事,结果爆了: 未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.ServiceModel.Activation.HttpHandler”。 由于我的IIS是安装.NET Framework和VS以后才装的,ASP.NET也没装上,所以一般情况下,只需要运行那个众所周知的“aspnet_regiis -i”命令就行了。但是Windows 8上这个命令是爆的。。。 正确的解决办法是,除了在Windows功能-Internet信息服务-应用程序和开发中选择ASP. …


Windows Azure部署NuGet服务器爆掉的解决办法

因为公司网络的限制,没有办法访问NuGet的官方地址 https://nuget.org/api/v2/ 。所以我只能在Windows Azure上搞了个私有的NuGet服务器。本地测试一切正常,但是部署到Azure以后,查看package list的时候爆了: 根据提示,只要更改web.config的一个配置就行: <system.serviceModel> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> </system.serviceModel> 然后在VS中重新部署网站到Windows Azure,因为是差异部署,只需要覆盖web.config就行。很快我们 …


在IIS里部署WCF以及在Service中使用List泛型而不是Array的方法

最近在公司做的是WCF的一个项目,之前从来没玩过WCF,有些陌生。所以把碰到的问题都记录下来以备参考。 首先在IIS里部署WCF很简单。 1. 保证你先有一个网站,并在这个站点上点右键,添加一个应用程序。 2.在弹出的对话框里选择WCF的根目录,并给他起个名字。 3. 如果你的Serivce是.NET4开发的,那就要到应用程序池里改下.NET版本 4. 在浏览器里访问你的service地址,就应该能成功了。 在使用这个Service编程的时候,一开始我发现List类型全变成了Array,也难怪,Serivce的标准就是XML里放的一个个node作为数组的元素。以前用脚本调用的时候就用的是JSON的array,现在在C#里我们其实可以通过设置仍然使用List类型: 1. 在服务引用上点右键,选择配置服务引用(我不知道中文版VS是不是这个名字) 2. 在集 …


Windows 7 64位版IIS不能连接Access数据库的解决办法

今天我把系统换成了64位版的Windows7,结果配完IIS打开网站测试的时候,顿时菊花一紧:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。 查了半天发现是IIS跑在64位环境下引起的。而64位下,是木有Access数据库的驱动的(包括Excel也不行)。 解决办法是:在目标网站的应用程序池中选择高级设置,然后将启用32位应用程序设置为true,重启IIS即可!


Win7下利用IIS自建网站全攻略!包括ASP和ASP.NET动态网站!高手勿入

首先说明,本文是入门水平,不会介绍IIS中的高级技巧,旨在引领不明白网站建设的童鞋入门,所以高手们可以绕路,不要浪 费青葱。。万一看了,请笑而不语,多多包涵。 读者需要了解网站开发(网页制作)和一些计算机网 络的基本知识。本文不会介绍如何去编写网站以及网络的设置。只介绍如何用IIS架设一个现有的网站。 自己建网站一直是很 多人的梦想。大家一定都多多少少学过网页制作。可做出来的网页,如何在internet上给朋友们看呢?如果你对服务器、网络等不了解,或没G购买虚拟主 机,没关系,你可以用自己的电脑DIY一个“服务器”出来!(当然,个人电脑做服务器是有很大局限性的,这个后面会讲) 其实早在Win98 里,就可以自己建web服务器了。那个时候的组件叫做PWS,2000以后叫做IIS了。并且一直延续到今天。微软在个人版的系统中也预留了阉割版的 IIS,以便网站开发人员 …