我已将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;
}
我的设置:
注意:我正在使用共享主机方案,因此无法直接访问IIS7.0,因此我需要通过web.config文件进行更改。