Web services Web API删除和放置在共享主机上时不起作用

Web services Web API删除和放置在共享主机上时不起作用,web-services,asp.net-mvc-4,asp.net-web-api,Web Services,Asp.net Mvc 4,Asp.net Web Api,我担心的是,我的返回JSON的WebAPI项目在本地运行得很好,但在共享主机上托管时效果很好 我已经添加了这个 我也检查了这个 也检查了本文中提到的设置,它就在那里 删除并放入--500错误 我已经厌倦了很多事情,我有点新的网络api,所以可能我错过了一些东西。。。或者我需要一个VPS主机来获得所需的访问权限 顺便说一句,我正在使用enitiy框架,并基于EF模型为此创建一个自动生成的控制器 Function PutEmpDetail(ByVal id As Integer, ByVal

我担心的是,我的返回JSON的WebAPI项目在本地运行得很好,但在共享主机上托管时效果很好

我已经添加了这个


我也检查了这个

也检查了本文中提到的设置,它就在那里

删除并放入--500错误

我已经厌倦了很多事情,我有点新的网络api,所以可能我错过了一些东西。。。或者我需要一个VPS主机来获得所需的访问权限

顺便说一句,我正在使用enitiy框架,并基于EF模型为此创建一个自动生成的控制器

 Function PutEmpDetail(ByVal id As Integer, ByVal empdetail As EmpDetail) As HttpResponseMessage
    If Not ModelState.IsValid Then
        Return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)
    End If

    If Not id = empdetail.Id Then
        Return Request.CreateResponse(HttpStatusCode.BadRequest)
    End If

    db.Entry(empdetail).State = EntityState.Modified

    Try
        db.SaveChanges()
    Catch ex As DbUpdateConcurrencyException
        Return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex)
    End Try

    Return Request.CreateResponse(HttpStatusCode.OK)
End Function

 Function DeleteEmpDetail(ByVal id As Integer) As HttpResponseMessage
    Dim empdetail As EmpDetail = db.EmpDetails.Find(id)
    If IsNothing(empdetail) Then
        Return Request.CreateResponse(HttpStatusCode.NotFound)
    End If

    db.EmpDetails.Remove(empdetail)

    Try
        db.SaveChanges()
    Catch ex As DbUpdateConcurrencyException
        Return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex)
    End Try

    Return Request.CreateResponse(HttpStatusCode.OK, empdetail)
End Function

通常在共享主机上,默认情况下不启用这些额外(是的,它们是额外的)谓词。如果99.99%的客户群不需要启用额外功能,则系统管理员不愿意添加额外功能


如果主机已启用,请咨询主机。他们很可能不这样做,也很可能拒绝启用它们。如果是这样,请询问他们其他选择,否则迁移到其他主机。

问题似乎在于共享主机,他们无法绕过安全机制并提供正确的访问权限。。我把API移到了VPS,它在那里工作得很顺利

你犯了什么错误?我得到了内部服务器错误,我用delete头调用它。。I使用chrome extenstion Advanced Rest客户端进行测试如果在浏览器中调用此选项,则会触发默认的get action,并且您会看到一个用户列表,仅凭“I get internal server error”很难分辨。我注意到您在共享主机上,因此无法访问EventViewer。在应用程序中添加一些日志记录,允许您对日志文件执行调试-转储事件。我将尝试这样做,但我有点困惑的是,调用首先到达函数。。。然后,只有日志记录才能工作。我也尝试过,我启用了动词,但似乎有额外的安全性,他们无法绕过,最终它在VPS系统上工作,没有太大的困难。请记住,最有可能的是,他们不能“绕过”额外的安全性。这是因为他们已经禁用了99%的客户甚至不知道规范中是否提供的功能。该功能存在安全风险,他们不是不能“绕过”规则来禁用该功能,而是“强制”他们的规则,即该功能可能无法启用。