window server 2012 II8 假陌生 碰到的问题
1、我们网站是.net 3.5 开发的。还有一个32DLL
2、从windows server 2008 r2 iis 7 迁移过来碰到了3个问题,及解决办法
I、
在唯一密钥属性“fileExtension”设置为“.json”时,无法添加类型为“mimeMap”的重复集合项
如果IIS中已经有设置.xaml和 .xap这两个扩展名,那么IIS就会提示:在唯一密钥属性“fileExtension”设置为“.xaml”(或者.xap)时,无法添加类型为“mimeMap”的重复集合项。
<staticContent> <mimeMap fileExtension=".json" mimeType="application/x-javascript" /> </staticContent>
具体的提示信息是根据自己所添加的MIME类型的扩展名来的,比如我添加的是.json,所以提示的是.json这个扩展名无法添加重复集合项
所以一般我们要在配置文件中添加MIME Type,就得先使用remove节点删除掉要添加的MIME,防止重复。正确的配置文件代码如下:
<staticContent> <remove fileExtension=".json"/> <mimeMap fileExtension=".json" mimeType="application/x-javascript" /> </staticContent>
一般来说,我们之所以要在ASP.NET网站的web.config中添加MIME类型,是因为在IIS中并没有设置这个MIME类型,而且因为某些原因我们只能在网站的web.config配置文件中添加mimeMap(比如我们没有权限进入服务器等情况)。
这样就可以能出现一个问题:假设当前网站发布到新的服务器中,此时新服务器上的IIS默认已经有设置这个MIME类型,而我们网站 web.config配置文件也设置了mimeMap的mimeType,这样重复添加MIME类型就会提示mimemap在集合项目设置中重复了!
II、
不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定
在全新安装的IIS7下搭建网站,访问页面时出现错误信息如下:
配置错误 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的。
配置文件 \\?\X(盘符):\目录名\目录名\web.config
<system.webServer>
<handlers>
<add name="isa_rewrite" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
</handlers>
</system.webServer>
配置源
104: </modules>
105: <handlers> '//(这里红色标记)
106: <add name="isa_rewrite" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
解决办法:
出现这个错误是因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改。要取消锁定可以以管理员身份运行命令行 %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 。其中的 handlers 是错误信息中红字显示的节点名称。
如果modules也被锁定,可以运行%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
注意:要以管理员身份运行才可以,默认不是管理员身份,方法,在开始菜单中的搜索程序与文件输入CMD,就会在上方出现一个CMD.EXE,在这个CMD.EXE文件上点击键,选择“以管理员身份运行”,打开命令行窗口,输入以上命令即可。
III、(现象是aspx页面,一直加载但没有任何反应!)
找到framework的路径,我的vs默认安装在c盘,路径为:C:\Windows\Microsoft.NET\Framework\v4.0.30319
输入cd 进入该目录,输入命令aspnet_regiis.exe -i