【问题标题】:404 errors for PUT and DELETE requests on deployed WCF RESTful Service已部署的 WCF RESTful 服务上的 PUT 和 DELETE 请求出现 404 错误
【发布时间】:2012-02-13 21:18:18
【问题描述】:

我已将 MVC3 和 WCF Web 服务部署为单个应用程序。两者都按预期工作。 GET 和 POST 请求完美运行,但 PUT 和 DELETE 请求返回 404 错误。这些在本地工作正常。最初它为 PUT/DELETE 请求请求用户名/密码。

这是我的 web.config 文件中的 WebServer 配置

    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true">
            <remove name="WebDAVModule" />
        </modules>
        <handlers>
            <remove name="WebDAVModule" />
        </handlers>     
        <security>
          <authorization>
            <remove users="*" roles="" verbs="" />
            <add accessType="Allow" users="*" 
                            verbs="GET,HEAD,POST,DEBUG,PUT,DELETE" />
          </authorization>
        </security>             
    </system.webServer>

这是我的 PUT 和 DELETE 方法:

    [OperationContract]
    [WebInvoke(UriTemplate = "{id}", Method = "PUT")]
    public MyResource Put(MyResource updatedResource, int id)
    {
        MyResource existingResource = Database.GetResourceById(id);
        existingResource.Name = updatedResource.Name;
        Database.SaveResource(existingResource);

        return existingResource;
    }

    [OperationContract]
    [WebInvoke(UriTemplate = "{id}", Method = "DELETE")]
    public MyResource Delete(int id)
    {
        MyResource sampleResource = Database.DeleteResourceById(id);
        return sampleResource;
    }

我的设置:

  • .NET 4.0
  • MVC3
  • IIS 7.0

注意:我使用的是共享主机计划,因此无法直接访问 IIS7.0,因此我需要通过 web.config 文件进行更改。

【问题讨论】:

  • 我不确定如何在共享主机中执行此操作,请查看this out

标签: wcf rest iis-7 http-put http-delete


【解决方案1】:

在您的服务上启用 Tracing,看看为什么您在尝试执行 PUT 或 DELETE 操作时会收到 404 错误。

【讨论】:

  • 我启用了跟踪并实现了我自己的日志记录。当我调用 GET 和 POST 方法时,它会输出确认消息,但它甚至不确认(在跟踪文件中没有)调用了 PUT 或 DELETE 方法。就好像呼叫在到达网络服务之前就被阻止了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多