我有一个简单的webAPI构建Visual Studio 2013。当我从VS13运行它时,它工作得很好,但当我在本地IIS中复制项目时,它给了我以下错误。
HTTP错误500.19 -内部服务器错误不能被请求的页面
访问,因为该页的相关配置数据为
无效的。
详细错误信息:
模块IIS Web核心
通知BeginRequest
处理人尚未确定
错误码0x80070021
配置错误该配置项不能在该路径下使用。当section被锁定在父级时,就会发生这种情况。锁定是默认的(overrideModeDefault="Deny"),或者由overrideMode="Deny"或遗留的allowOverride="false"的位置标记显式设置。
配置文件\?\C:\inetpub\wwwroot\APITeslin\web.config
配置来源:
36: <system.webServer>
37: <handlers>
38: <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
如果您是第一次在那台计算机上运行IIS,您应该尝试运行ASP。NET IIS注册工具(aspnet_regiis.exe)。
下面是如何做到这一点:
如果你使用的是.net framework v4,以管理员身份打开命令提示符,使用以下命令将目录更改为.net framework基本文件夹:
CD C:\Windows\Microsoft.NET\Framework\v4.0.30319
或者,如果你使用的是64位计算机,使用:
CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319
当您成功导航到适当的目录时,执行ASP。NET IIS注册工具使用:
aspnet_regiis -i
如果您使用的是不同的. net框架版本,只需将v4.0.30319替换为适当的文件夹名。
希望这能有所帮助。
我们正在使用亚马逊网络服务,所以我们希望使用脚本和程序来解决这个问题。所以我一直在寻找一个命令行工具。所以首先我尝试了跑步的技巧
c:\Windows\ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -我
但因为我运行的是基于云的Windows Server 2012,它就会抱怨
此版本的操作系统不支持此选项。管理员应该安装/卸载ASP。使用“打开/关闭Windows功能”对话框,服务器管理器管理工具或dism.exe命令行工具。详情请见http://go.microsoft.com/fwlink/?LinkID=216771。
我谷歌了一下,找到了微软官方支持页面KB2736284。有一个命令行工具dism.exe。所以我尝试了以下方法
dism /online /enable-feature /featurename:IIS-ASPNET45
但是它抱怨了,并给出了一个功能名称列表来尝试,所以我一个一个地尝试了它们,并在每个功能名称之后测试了我的WebAPI网页,它在列表中底部的功能名称之后工作。
dism /online /enable-feature /featurename:IIS-ApplicationDevelopment
dism /online /enable-feature /featurename:IIS-ISAPIFilter
dism /online /enable-feature /featurename:IIS-ISAPIExtensions
dism /online /enable-feature /featurename:IIS-NetFxExtensibility45
现在我可以浏览我的WebAPI站点并查看API信息。这应该能帮助一些人。[然而,我还没有完全脱离困境,我还不能从盒子外进入网站。还在努力中。
此外,我根据其他人的反应做了一些早期的步骤。我可以确认以下功能委托需要更改(尽管我想找到一个命令行工具)。
In Feature delegation
Change
'Handler Mappings' from Read Only to Read/Write
Change
'Modules' from Read Only to Read/Write
Change
'SSL Settings' from Read Only to Read/Write