0

私の懸念は、JSON を返す私の web-api プロジェクトはローカルでは非常にうまく機能しますが、共有ホスティングでホストされている場合です。

私はすでにこれを追加しました

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

私もこれをチェックしました http://geekswithblogs.net/michelotti/archive/2011/05/28/resolve-404-in-iis-express-for-put-and-delete-verbs.aspx

この記事に記載されている設定も確認しましたが、すべてそこにありました。

DELETE および PUT - http://api.antheminfotech.net/api/employees/23 - 500 エラー

私は多くのことに疲れました。私は web-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
4

2 に答える 2

2

問題は共有ホスティングに嘘をついたようです.彼らはセキュリティをバイパスして正しいアクセスを与えることができませんでした..私はAPIをVPSに移動しました.

于 2013-04-15T04:21:33.143 に答える