消费和部署ASP.NET WebApi服务–陷阱

 

我相信您已经开始使用WebApi。如果不是这样,那么当您开始时,这篇文章仍然可以为您提供帮助。

这篇文章重点介绍我在使用ASP.NET WebApi开发时遇到的一些问题以及解决这些问题的解决方案。

陷阱1 –> PUTDELETE请求在Internet Explorer 10上不起作用

这一次引起了很大的痛苦,当我开始使用的WebAPI,发现PUTDELETE要求不工作在Internet Explorer 10(特别是在Windows 8 64位)。我不确定为什么它不能在Internet Explorer的最新和最佳版本中起作用,但事实就是如此。没有针对此问题的解决方法。我们可以将此标签添加到<head>网页的标签中,以使Internet Explorer 10Internet Explorer 9一样工作。

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

您可以将其添加到所有页面上,也可以仅添加到发出PUTDELETE请求调用的页面上。但是,在使用ASP.NET WebApi进行开发之前,要牢记这一点,直到Microsoft提出针对此的修复程序为止。

陷阱2 –>一旦应用程序部署在IIS中,PUTDELETE请求就不能工作

当你开始使用WebApi时,你会发现它非常棒,非常简单,只要你在VS中开发和调试你的解决方案,一切都很简单。但是,一旦在IIS中部署了WebApi应用程序,就会遇到问题,如果WebApi调用不起作用,则会遇到一些问题。不要感到惊讶,因为这是一个非常普遍的问题,因为默认情况下,IIS未配置为服务PUTDELETE请求。

WebApi配置IIS 7.5

有时,当在IIS中部署WebApi应用程序时,IIS 7 / 7.5中安装的WebDav模块会导致问题。不知道是什么原因,但是对我有用的解决方案是为我的应用程序删除WebDav模块。这可以通过在web.config文件中添加以下标记来实现,该标记指示IIS不要为我们的应用程序注册WebDav模块。以下标签必须包含在应用程序的web.config<system.webServer>标签内。

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

WebApi配置IIS 6

这个有点棘手,并且没有适当的解释为什么会起作用。但是我们需要为WebApi配置IIS6,以使我们的应用程序能够一致地工作。解决方法来自Phil Haack的帖子,内容涉及在IIS 6上使用ASP.NET MVC。帖子本身非常有用,但我们感兴趣的部分位于底部。因此,我将在这里为大家介绍一下:

  • 右键单击已部署的应用程序,然后选择属性。
  • 在属性窗口中,单击配置以打开应用程序配置窗口。

  • 使用以下方法获取aspnet_isapi DLL 的路径。

一种简单的查找方法是在列表中找到.aspx扩展名,然后双击它以打开映射对话框。

现在,您可以将可执行文件文本框中的路径复制到剪贴板。

  • 现在,进入先前的应用程序配置窗口。在通配符应用程序映射部分中,单击插入...”按钮。
  • 这将打开通配符应用程序映射对话框。输入在上一步中复制aspnet_isapi.dll的路径

不要忘记取消选中确认文件存在复选框!这是人们最常犯的错误之一,如果不去做会让你头痛。这可能会导致应用程序完全停止运行。

就是这样了。你应该做的很好。请记住,每个人可能都不会遇到这些问题,因为他们的IIS可能配置正确,或者他们已经在使用正确版本的正确浏览器。但是对这些陷阱的了解应该派上用场。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值