Existe alguma maneira de criar um diretório virtual no IIS Express? Eu sei que a Cassini não pode fazer isso e seria bom poder fazer isso sem usar uma versão completa do IIS.
Compreendi até agora que posso navegar para o meu aplicativo localmente no IIS Express assim:
O que eu gostaria de fazer é criar um diretório virtual chamado "OffSiteStuff" e apontá-lo para algum local na minha unidade C, como "c: \ offsitestuff" e, em seguida, procurar itens nessa pasta como este:
http: // localhost: 1132 / OffSiteStuff / UserUploadedImage.jpg
Eu sei que eu poderia fazer isso com uma pasta no meu site e ainda usar o IIS Express, ou, na verdade, o velho Cassini, mas essa pasta armazenará imagens enviadas por usuários e eu realmente não quero misturar essas imagens com arquivos de aplicativo.
A outra solução, "vá em frente" é implantar o site em uma instância completa do Server 2008 IIS 7.5 toda vez que eu desejar depurar os recursos que usam conteúdo externo, mas isso também é um pouco complicado.
Existe alguma maneira de fazer isso no <System.WebServer />
elemento de configuração da Web?
fonte
applicationHost.config
arquivo está na raiz do projeto:${PROJECT}\.vs\config\applicationHost.config
.Respostas:
A configuração expressa do IIS é gerenciada por applicationhost.config.
Você pode encontrá-lo em
Dentro, você pode encontrar a seção de sites que contém uma seção para cada site configurado do IIS Express.
Adicione (ou modifique) uma seção de site como esta:
Praticamente você precisa adicionar uma nova tag de aplicativo no seu site para cada diretório virtual. Você tem muita flexibilidade porque pode definir configurações diferentes para o diretório virtual (por exemplo, uma versão diferente do .Net Framework)
EDIT Agradecemos a Fevzi Apaydın por apontar para uma solução mais elegante.
Você pode obter o mesmo resultado adicionando uma ou mais tags virtualDirectory à tag Application:
Referência:
fonte
applicationhost.config
foi alterado. Mais sensatamente que as versões anteriores, agora está localizado na.vs\config
subpasta da sua pasta de soluções.A abordagem de @ Be.St. É verdadeira, mas incompleta. Só estou copiando a explicação dele para corrigir a parte incorreta.
A configuração expressa do IIS é gerenciada por applicationhost.config.
Você pode encontrá-lo em
Dentro, você pode encontrar a seção de sites que contém uma seção para cada site configurado do IIS Express.
Adicione (ou modifique) uma seção de site como esta:
Em vez de adicionar um novo bloco de aplicativo, você deve adicionar um novo elemento virtualDirectory ao elemento pai do aplicativo.
Editar - Visual Studio 2015
Se você estiver procurando pelo arquivo applicationHost.config e estiver usando o VS2015, encontrará:
fonte
No VS2013, fiz isso nas seguintes etapas:
1.Clique com o botão direito do mouse no projeto de aplicativo da web e clique em Propriedades
2.Ver a guia "Web" da página Propriedades
3.Em Servidores, com "IIS Express" como a opção padrão da lista suspensa, no "URL do Projeto" altere a URL usando o número da porta para aquele que mais lhe convier. Por exemplo, apaguei o número da porta e adicionei "/ MVCDemo4" após o host local.
4.Clique no botão "Criar diretório virtual".
5. Execute seu projeto e o novo URL será usado
fonte
Se você estiver usando o Visual Studio 2013 (pode exigir a edição Pro ou superior), consegui adicionar um diretório virtual a um site do IIS Express (baseado em arquivo) clicando com o botão direito do mouse no site do Gerenciador de Soluções e clicando em Adicionar> Novo diretório virtual. Isso adicionou uma entrada ao arquivo applicationhost.config, como nos métodos manuais descritos aqui.
fonte
Uma nova opção é o Jexus Manager para IIS Express,
https://blog.lextudio.com/2014/10/jexus-manager-for-iis-express/
É apenas a ferramenta de gerenciamento que você sabe usar.
fonte
Eu tinha outra coisa: os arquivos em si eram inacessíveis em um ambiente do SBS.
Exclua os arquivos na pasta de configuração (se não conseguir abri-los!) E substitua-os por uma cópia da pasta no seu próprio PC local.
Corrigido para mim :)
fonte
Eu tive que fazer a entrada no arquivo [projeto] .vs \ config \ applicationhost.config.
Antes disso, ele trabalhava na implantação, mas não no código.
fonte
Em resposta à outra pergunta -
Nunca encontrei uma resposta consistente para isso em nenhum lugar, mas descobri que você poderia fazer isso com um evento pós-compilação usando a tarefa XmlPoke no arquivo de projeto do site -
Você pode usar essa técnica para apontar qualquer coisa no arquivo antes do IISExpress iniciar. Isso permitiria forçar inicialmente um arquivo applicationHost.config para o GIT (supondo que ele seja ignorado pelo gitignore) e, posteriormente, apontar todos os caminhos no momento da criação. O GIT ignorará quaisquer alterações no arquivo, agora é fácil compartilhá-las.
Em resposta à outra pergunta sobre como adicionar outros aplicativos em um site:
Você pode criar o site no arquivo de hosts do aplicativo, exatamente como o do seu servidor. Por exemplo:
Em seguida, use a técnica acima para alterar os locais da pasta no momento da criação.
fonte