Asp.net web api .Net Web API未找到与请求URI匹配的HTTP资源
我正在使用.Net Web API,该API在调试和本地主机IIS中运行良好,但当我将其发布到服务器时,它开始出现以下错误:-Asp.net web api .Net Web API未找到与请求URI匹配的HTTP资源,asp.net-web-api,iis-7.5,Asp.net Web Api,Iis 7.5,我正在使用.Net Web API,该API在调试和本地主机IIS中运行良好,但当我将其发布到服务器时,它开始出现以下错误:- “消息”:“未找到与请求URI匹配的HTTP资源 GlobalConfiguration.Configure(WebApiConfig.Register); 在服务器上,此API的默认站点下有应用程序文件夹,但它在本地IIS的默认站点下的应用程序文件夹中工作正常,所以这应该不是问题所在 GlobalConfiguration.Configure(Web
“消息”:“未找到与请求URI匹配的HTTP资源
GlobalConfiguration.Configure(WebApiConfig.Register);
在服务器上,此API的默认站点下有应用程序文件夹,但它在本地IIS的默认站点下的应用程序文件夹中工作正常,所以这应该不是问题所在
GlobalConfiguration.Configure(WebApiConfig.Register);
现在,我尝试在处理程序中设置以下url中指定的适当动词,但没有成功: GlobalConfiguration.Configure(WebApiConfig.Register);
此外,我已经在服务器上安装了MVC4,如以下url所示: GlobalConfiguration.Configure(WebApiConfig.Register);
同样是WebDav模块,处理程序可能会给出错误,所以我也尝试删除它,但它给出了相同的错误
GlobalConfiguration.Configure(WebApiConfig.Register);
以下是模块的Web.config部分,处理程序设置:-
<modules runAllManagedModulesForAllRequests="true" />
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="*" modules="IsapiModule"
scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"
preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="*" modules="IsapiModule"
scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
GlobalConfiguration.Configure(WebApiConfig.Register);
我没有在任何地方玩路由。我是否缺少关于web.config或服务器IIS中的设置/配置的内容?更改为:
<validation validateIntegratedModeConfiguration="false" />
<modules>
<remove name="WebDAVModule"/>
</modules>
<handlers>
<remove name="WebDAV"/>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
GlobalConfiguration.Configure(WebApiConfig.Register);
这对我很有用:
<remove name="WebDAV"/>
GlobalConfiguration.Configure(WebApiConfig.Register);
我不知道为什么它被安装在服务器上。但这似乎干扰了无扩展处理程序
GlobalConfiguration.Configure(WebApiConfig.Register);
从IIS():
GlobalConfiguration.Configure(WebApiConfig.Register);
微软发布了一个全新的WebDAV扩展模块,该模块已完全升级
在上为Internet信息服务(IIS)7及以上版本重写
Windows Server®2008。此新的WebDAV扩展模块包含
许多新功能使Web作者能够更好地发布内容
与以前相比,它为Web管理员提供了更多的安全性和灵活性
配置选项。Microsoft已发布WebDAV的更新
用于Windows Server®2008的扩展模块,提供共享和
独占锁支持,防止由于覆盖而丢失更新
GlobalConfiguration.Configure(WebApiConfig.Register);
另一个可能的原因是
GlobalConfiguration.Configure(WebApiConfig.Register);
追求
GlobalConfiguration.Configure(WebApiConfig.Register);
RouteConfig.RegisterRoutes(RouteTable.Routes);
在global.asax.cs中
GlobalConfiguration.Configure(WebApiConfig.Register);
它必须在之前,否则默认RouteConfig路由会“吃掉”WebAPI路由-并尝试将API请求映射到名为API的控制器…是否所有HTTP方法都会出现此错误,基本上是任何路由,还是只有特定的动词(如PUT和DELETE)?您是否尝试过经典/集成模式(IIS)?是的,所有HTTP方法都出现此错误。我正在IIS 7.5中使用集成模式。您解决了问题吗?我现在也有相同的问题…对我来说,问题的原因是缺少程序集:。也许您可以在Kiran Challa的测试代码的帮助下在项目中检查此问题:
GlobalConfiguration.Configure(WebApiConfig.Register);