WEB API FUNCIONA NO LOCAL MAS NO SERVIDOR NÃO.

 Tópico anterior Próximo tópico Novo tópico

WEB API FUNCIONA NO LOCAL MAS NO SERVIDOR NÃO.

ASP.NET

 Compartilhe  Compartilhe  Compartilhe
#484337 - 04/09/2018 10:21:16

MESTRE
GUARULHOS
Cadast. em:Novembro/2013


Falaaaa galera beleza? então

No Postman quando faço a requisição na localhost da minha maquina da webapi me retorna um status 200 ok, quando faço no servidor com a mesma webapi me retorna 405 method not allowed (o servidor ja esta configurado certinho, com as portas liberadas e funcionando o GET normalmente)..

GET
http://localhost:35056/api/listar (retorna 200 OK e a lista de usuarios)
http://10.0.0.9:8080/api/listar (retorna 200 OK e a lista de usuarios)

PUT
http://localhost:35056/api/cliente/atualizar/477 (retorna 200 OK)
http://10.0.0.9:8080/api/cliente/atualizar/477 (retorna 405 method not allowed)

ClienteController:
    [HttpPut]
    [Route("atualizar/{id}")]

    public ReturnAllServices Atualizar(int id, [FromBody]ClienteModel dados)

    {

        ReturnAllServices retorno = new ReturnAllServices();


        try

        {

            dados.Id = id;

            dados.AtualizarCliente();

            retorno.Result = true;

            retorno.ErrorMessage = string.Empty;

        }

        catch (Exception ex)

        {

            retorno.Result = false;

            retorno.ErrorMessage = "Erro ao registrar cliente" + ex.Message;

        }


        return retorno;


    }
// ClienteModel Atualizar.

public void AtualizarCliente()

    {

        Conn objConn = new Conn();

        string sql = "UPDATE cliente SET Nome=@nome WHERE id=@id";

        MySqlCommand cmd = new MySqlCommand();

        cmd.CommandText = sql;

        cmd.Parameters.AddWithValue("@nome", Nome);

        cmd.Parameters.AddWithValue("@id", Id);


        objConn.ExecutaQuery(cmd);


    }


Retorna uma pagina:    <h3>A pagina que voce está procurando nao pode ser exibida, pois foi usado um método inválido (verbo HTTP) para tentar o acesso.</h3>
Obs: não estou utilizando Token pois se trata de uma web api em servidor local com acesso em maquinas locais somente, antes de postar aqui dei uma pesquisada e aí alguns gringos falam
pra dar uma olhada na config do IIS HandlerMappings e está tudo Habilitado, (TracerHandler, WebDav, OPTIONSVerbHandler, aspNetCore) varios com * o que significa all acredito eu rsrs..

_______________________________________________
"A alegria está na luta, na tentativa, no sofrimento envolvido e não na vitória propriamente dita."
Gandhi.


#484338 - 04/09/2018 10:40:51

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
É bem provável que seja o módulo WebDAV, remova a configuração dele do web.config. Ela se parece com isso:

<system.webServer>
    <modules>
        <remove name="WebDAVModule" />
    </modules>
    <handlers>
        <remove name="WebDAV" />
    </handlers>
</system.webServer>


_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#484340 - 04/09/2018 11:24:23

MESTRE
GUARULHOS
Cadast. em:Novembro/2013


Última edição em 04/09/2018 11:25:04 por MESTRE

Citação:
:
É bem provável que seja o módulo WebDAV, remova a configuração dele do web.config. Ela se parece com isso:

<system.webServer>
    <modules>
        <remove name="WebDAVModule" />
    </modules>
    <handlers>
        <remove name="WebDAV" />
    </handlers>
</system.webServer>

Opa Kerp, meu web.config depois de dar o publish tem somente:
  
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\WebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>
<!--ProjectGuid: 8c0da3d5-7742-4a40-9da7-77d1e6b3b685-->

Meu .csproj
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.9" />
    <PackageReference Include="MySql.Data" Version="8.0.12" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
  </ItemGroup>

</Project>



_______________________________________________
"A alegria está na luta, na tentativa, no sofrimento envolvido e não na vitória propriamente dita."
Gandhi.


#484342 - 04/09/2018 12:02:15

MESTRE
GUARULHOS
Cadast. em:Novembro/2013


Kerp consegui resolver agora ta retornando 200 OK.... realmente é problema com o WebDav..

Adicionei:

<system.webServer>
  <modules runAllManagedModulesForAllRequests="false">
    <remove name="WebDAVModule" />
  </modules>
</system.webServer>

no arquivo web.config e funcionou..

fonte : here

Agora a pergunta de 1 milhão , se eu remover o WebDav do handler mappings que está Habilitado nao vou precisar alterar o Web.config?
ou daria problema em algo eu remover o webDav?

_______________________________________________
"A alegria está na luta, na tentativa, no sofrimento envolvido e não na vitória propriamente dita."
Gandhi.


#484343 - 04/09/2018 12:13:41

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
O módulo WebDav hoje, é mais um legado e dificilmente vai afetar a funcionalidade à menos que você use autorização ou versionamento baseadas no Apache.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#484344 - 04/09/2018 13:10:24

MESTRE
GUARULHOS
Cadast. em:Novembro/2013


Última edição em 04/09/2018 13:19:21 por MESTRE

Citação:
:
O módulo WebDav hoje, é mais um legado e dificilmente vai afetar a funcionalidade à menos que você use autorização ou versionamento baseadas no Apache.

Então posso desativá-lo ou remove-lo sem causar nenhum problema ?


_______________________________________________
"A alegria está na luta, na tentativa, no sofrimento envolvido e não na vitória propriamente dita."
Gandhi.


 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário