ASP.NET MVC 4 Web API开发中的常见问题与解决方案

在使用ASP.NET MVC4Web API进行开发的过程中,可能会遇到一些常见的问题。本文将分享一些在开发过程中遇到的典型问题及其解决方案,希望能够帮助到正在使用或即将使用Web API的开发者们。

问题1:IE10中PUT和DELETE请求无法工作

在开始使用Web API时,可能会发现在Windows 8 64位系统上的Internet Explorer 10中,PUT和DELETE请求无法正常工作。虽然不确定为何在最新版本的IE中会出现这样的问题,但可以采取一些措施来解决。一种方法是在Web页面的标签中添加以下meta标签,使IE10模拟IE9的行为:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">

可以将这个标签添加到所有页面,或者仅添加到执行PUT或DELETE请求的页面。这是一个在开发ASP.NET WebApi时需要注意的问题,直到微软提供修复方案。

问题2:部署到IIS后PUT和DELETE请求无法工作

当开始使用WebApi时,可能会发现在Visual Studio中开发和调试时一切正常,但一旦将WebApi应用部署到IIS,就会出现一些问题,某些WebApi调用可能无法正常工作。这并不奇怪,因为IIS默认并不配置为处理PUT/DELETE请求。

有时,安装在IIS 7/7.5中的WebDav模块可能会导致WebApi应用在部署到IIS时出现问题。解决方案是移除WebDav模块。这可以通过在应用的web.config文件中添加以下标签来实现,指示IIS不为应用程序注册WebDav模块。这些标签需要包含在应用的web.config文件的标签内:

<modules runAllManagedModulesForAllRequests="true"> <remove name="WebDAVModule" /> </modules> <handlers> <remove name="WebDAV" /> </handlers>

这样配置后,应该可以解决在IIS 7.5中部署WebApi应用时遇到的问题。

配置IIS 6以支持WebApi稍微有些复杂,并且没有明确的解释说明为什么这样做有效。但需要对IIS 6进行配置,以确保WebApi应用能够一致地工作。以下是一个常见的解决方法,来源于Phil Haack关于在IIS 6上使用ASP.NET MVC的帖子:

1. 右键点击已部署的应用,选择属性。

2. 在属性窗口中,点击配置以打开“应用程序配置”窗口。

3. 获取aspnet_isapi.dll的路径。一种简单的方法是在列表中找到.aspx扩展名,双击它以打开映射对话框。

4. 现在,可以将Executable文本框中的路径复制到剪贴板。

5. 返回到之前的“应用程序配置”窗口。在通配符应用程序映射部分,点击Insert…按钮。

6. 这将打开通配符应用程序映射对话框。输入之前复制的aspnet_isapi.dll的路径。

7. 别忘了取消勾选“验证文件是否存在”复选框!这是一个常见的错误,如果没有正确操作,可能会导致应用程序完全停止工作。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485