AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 660555
Accepted
muffel
muffel
Asked: 2015-01-20 00:07:26 +0800 CST2015-01-20 00:07:26 +0800 CST 2015-01-20 00:07:26 +0800 CST

Como fazer o script do IIS para fornecer um recurso estático com um código de erro personalizado?

  • 772

Eu tenho um IIS 8.5 executando um serviço RESTful ASP.NET 4.5 WCF como aplicativo no Windows Server 2012 R2.

Durante a manutenção do serviço, desejo que todas as solicitações ao serviço WCF ( https://server/path/service.svc/whatever/path ) resultem em um código de erro personalizado (por exemplo, 555) e uma resposta JSON estática (conteúdo estático e cabeçalho Content-Type correto ). Como deve haver alguma manutenção acionada automaticamente, seria ótimo se esse comportamento do IIS pudesse ser acionado programaticamente.

Você sabe se há alguma maneira de entregar temporariamente o conteúdo JSON estático para um URL específico (e todos os subcaminhos REST-ful , consulte o exemplo de URL acima) e, adicionalmente, usar um código de erro 5xx personalizado (em vez de 200) como código de resposta HTTP?

iis
  • 1 1 respostas
  • 974 Views

1 respostas

  • Voted
  1. Best Answer
    Peter Hahndorf
    2015-01-20T01:28:44+08:002015-01-20T01:28:44+08:00

    Você está fazendo duas perguntas, como fazer isso e como fazer o script do que deseja fazer.

    Não sei se é possível pronto para uso, mas uma solução é usar o módulo IIS UrlRewrite , isso é muito útil para todos os tipos de coisas, então acho que é uma boa ideia tê-lo de qualquer maneira.

    Crie uma nova regra que corresponda a todas as solicitações que deseja tratar, no seu caso path/service.svc/whatever/path, você pode usar expressões regulares para corresponder às suas solicitações. Use uma resposta personalizada e envie seu próprio código de status. No web.config você deve ter uma seção como esta:

    <rewrite>
      <rules>
        <rule name="Json Redirect" stopProcessing="true">
          <match url="path/service.svc/whatever/path" />
          <action type="CustomResponse" statusCode="555" subStatusCode="0" statusReason="Nothing to see here" statusDescription="Temporary static json..." />
        </rule>
      </rules>
    </rewrite>
    

    Se você apenas fizer isso, obterá o código de erro, mas não seu json estático. Adicione uma nova entrada em system.webServer-httpErrors em web.config:

    <error statusCode="555" subStatusCode="0" path="temp.json" responseMode="File" />
    

    O responseMode = file significa que a localização do arquivo estático é relativa à sua raiz da web, no caso acima, bem na raiz do seu site.

    Agora você precisa corrigir o tipo de conteúdo, adicione uma entrada em system.webServer-staticContent em seu web.config:

    <mimeMap fileExtension=".json" mimeType="text/json" />
    

    Ao testar isso localmente, você ainda pode obter uma página de erro do IIS, mas chamá-la remotamente deve funcionar.

    Você pode fazer todas essas alterações na interface do usuário do gerenciador do IIS, mas se quiser criar um script, consulte os cmdlets do PowerShell IIS .

    • 2

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve