Asp.net web api 我可以在godaddy服务器上使用多种方法类型吗?
我在web-api中使用了两种方法类型put。它在localhost中是正确的。但当我在godaddy服务器上使用它时,它是不正确的,并且出现了错误405Asp.net web api 我可以在godaddy服务器上使用多种方法类型吗?,asp.net-web-api,asp.net-web-api2,asp.net-web-api-routing,godaddy-api,Asp.net Web Api,Asp.net Web Api2,Asp.net Web Api Routing,Godaddy Api,我在web-api中使用了两种方法类型put。它在localhost中是正确的。但当我在godaddy服务器上使用它时,它是不正确的,并且出现了错误405 [RoutePrefix("api/MyController")] public class MyController : ApiController { [HttpPut] [Route("Method1")] public returnObject Method1([F
[RoutePrefix("api/MyController")]
public class MyController : ApiController
{
[HttpPut]
[Route("Method1")]
public returnObject Method1([FromBody]object1 object)
{
return returnObject1
}
[HttpPut]
[Route("Method2")]
public returnObject2 Method2([FromBody]object2 object)
{
return returnObject2
}
}
但是我无法访问godaddy服务器中的applicationhost.config,但是我尝试在我的项目中添加带有此代码的此部分
using (ServerManager serverManager = new ServerManager())
{
Configuration configAdmin = serverManager.GetApplicationHostConfiguration();
var section = configAdmin.GetSection("system.webServer/modules", "");
var collection = section.GetCollection();
var element = collection.CreateElement();
element.Attributes["name"].Value = "ExtensionlessUrl-Integrated-4.0";
element.Attributes["path"].Value = "*.";
element.Attributes["verb"].Value = "GET,HEAD,POST,DEBUG";
element.Attributes["type"].Value = "System.Web.Handlers.TransferRequestHandler";
element.Attributes["preCondition"].Value = "integratedMode,runtimeVersionv4.0";
collection.Add(element);
serverManager.CommitChanges();
}
when i run project and run up to line element.Attributes["path"] this is null and i have error.
只需通过检查applicationhost.config文件的行,确保在GoDaddy服务器上的IIS上启用了
PUT
verb即可
<add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
然后简单地添加
PUT
动词,因为它在默认情况下是禁用的。我用post方法而不是PUT方法解决了我的问题。
谢谢你的Ipsit Gaur,但我无法访问godaddy服务器中的applicationhost.config,但我尝试将此代码添加到我的项目中。