C# Asp.NETWebAPI在Godaddy服务器上不工作,但在本地服务器上工作正常

C# Asp.NETWebAPI在Godaddy服务器上不工作,但在本地服务器上工作正常,c#,asp.net,web-services,rest,asp.net-web-api,C#,Asp.net,Web Services,Rest,Asp.net Web Api,当我在godaddy服务器上运行Web Api(www.example.com/Api/values)时出现错误,它显示(404未找到此服务器上未找到请求的文档)。。但它在当地很好地工作 我已经在Godaddy中使用FTP(FileZilla)手动上传了文件,并且Godaddy服务器支持ASP.NET托管 以下是Web Api中使用的代码: ValuesController.cs namespace Webapi { public class ValuesController : ApiCon

当我在godaddy服务器上运行Web Api(www.example.com/Api/values)时出现错误,它显示(404未找到此服务器上未找到请求的文档)。。但它在当地很好地工作

我已经在Godaddy中使用FTP(FileZilla)手动上传了文件,并且Godaddy服务器支持ASP.NET托管

以下是Web Api中使用的代码:

ValuesController.cs

namespace Webapi {
 public class ValuesController : ApiController {
    // GET api/<controller>
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/<controller>/5
    public string Get(int id)
    {
        return "value";
    }

    // POST api/<controller>
    public void Post([FromBody]string value)
    {
    }

    // PUT api/<controller>/5
    public void Put(int id, [FromBody]string value)
    {
    }

    // DELETE api/<controller>/5
    public void Delete(int id)
    {
    }
  }
}
名称空间Webapi{
公共类值控制器:ApiController{
//获取api/
公共IEnumerable Get()
{
返回新字符串[]{“value1”,“value2”};
}
//获取api//5
公共字符串Get(int-id)
{
返回“值”;
}
//后api/
公共作废帖子([FromBody]字符串值)
{
}
//放置api//5
公共void Put(int id,[FromBody]字符串值)
{
}
//删除api//5
公共无效删除(int-id)
{
}
}
}
Valueswebconfig.cs

namespace Webapi {
  public static class WebApiConfig {
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
        );

       // config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));


        //// Custom Formatters:
        //config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(
        //    config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml"));

        //var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
        //jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

    }

  }
}
名称空间Webapi{
公共静态类WebApiConfig{
公共静态无效寄存器(HttpConfiguration配置)
{
config.Routes.MapHttpRoute(
名称:“DefaultApi”,
routeTemplate:“api/{controller}/{id}”,
默认值:新建{id=RouteParameter.Optional}
);
//config.Formatters.JsonFormatter.SupportedMediaTypes.Add(新的MediaTypeHeaderValue(“text/html”);
////自定义格式化程序:
//config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(
//config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t=>t.MediaType==“application/xml”);
//var jsonFormatter=config.Formatters.OfType().First();
//jsonFormatter.SerializerSettings.ContractResolver=新的CamelCasePropertyNamesContractResolver();
}
}
}
Web.config

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<system.web>
  <compilation debug="true" targetFramework="4.5.2" />
  <httpRuntime targetFramework="4.5.2" />
</system.web>

<system.webServer>
<handlers>
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer></configuration>

GoDaddy共享主机不支持Web API,因为它无法提供请求的URL(无扩展名的URL)。GoDaddy上的Windows共享主机(Plesk)在will API上无法正常工作(即使它支持.NET和IIS等)。检查您是否可以访问主机的公共目录中的index.html文件。如果没有index.html,您可以创建一个index.html,并将其部署到GoDaddy主机上的公共控制器


你可以在GoDaddy或AZURE上使用虚拟机。

像这样试试,www.example.com/api/api/values谢谢你,我像上面那样试过,但不起作用。。。请建议尝试此www.example.com/api/Values/GetMore,您可能需要在服务器上的IIS上设置应用程序。上面的链接也不适用于pranav。您好,padraic谢谢,但是如何在Godaddy服务器中配置IIS。我正在Godaddy服务器上运行web api。。。