Я создал проект ASP.NET 5, и все, что вам нужно, должно быть включено в качестве зависимости как часть файла проекта или bower или npm. Я замечаю, что не могу запустить / разместить какие-либо php-файлы (которые существуют для поддержки некоторых устаревших компонентов) в облаке Azure. Даже если он включен. Файл просто возвращается как 404.
Я пытался выяснить, почему Azure не может разместить файл, а затем подумал, что, возможно, мне нужно включить некоторую зависимость, которая была там раньше.
мой project.json
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.ApplicationInsights.AspNet": "1.0.0-beta8",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"},
"frameworks": {
"dnx451": { },
"dnxcore50": { }
},
"exclude": [
"wwwroot",
"node_modules"],
"publishExclude": [
"**.user",
"**.vspscc"]
}
мой startup.cs
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.UseDefaultFiles();
app.UseStaticFiles();
}
// Entry point for the application.
public static void Main(string[] args) => WebApplication.Run<Startup>(args);
}
Может ли кто-нибудь подтвердить это, и если да, что мне нужно включить?
Обновить: Это не проблема «Azure». Я удалил все файлы на сайте через ftp и просто загрузил обычные html и php файлы, и это работает. Это связано с публикацией сайта asp.net 5.
Вы не можете компилировать и обслуживать файлы PHP непосредственно из конвейера ASP.NET 5, а веб-сайты AFAIK Azure поддерживают только один тип сервера для каждого экземпляра сайта.
Вы могли бы служить содержание PHP-файла с использованием промежуточного программного обеспечения статических файлов, но я уверен, что это не то, что вы хотите.
Вам нужно как минимум два сервера. Или IIS или Kestrel для ASP.NET, и Apache (или что-то еще?) Для PHP. Затем вы должны настроить один из серверов для работы в качестве обратного прокси-сервера для другого для определенных запросов.
Например, скажем, у вас есть Apache прослушивания localhost:80
и IIS слушают localhost:81
, Затем вы можете заставить Apache принимать все запросы извне и пересылать любые запросы, которые не заканчиваются .php
в localhost:81
,
Других решений пока нет …