2015-11-24 4 views
4

Я в процессе миграции некоторых приложений из ASP.NET 5 beta7 в RC1. Использование HTTPPlatformHandler Я могу запустить любое из этих приложений ASP.NET 5 RC1 в качестве корня сайта IIS. Но они не будут работать как субдир (щелкните правой кнопкой мыши «добавить приложение») на сайт. Полный ответ показывает:ASP.NET 5 добавить приложение как приложение IIS

HTTP/1.1 404 Not Found 
Content-Length: 0 
Server: Kestrel 
X-Powered-By: ASP.NET 
Date: Tue, 24 Nov 2015 14:59:04 GMT 

Это не проблема разрешения, поскольку маршрут обслуживается успешно, когда приложение является корнем сайта и используя тот же пул приложений.

Пул приложений настроен для «без управляемого кода» и интегрированного конвейера.

web.config, для корневого приложения выглядит следующим образом:

<configuration> 
    <system.webServer> 
    <handlers> 
     <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" /> 
    </handlers> 
    <httpPlatform processPath="..\approot\web.cmd" arguments="" stdoutLogEnabled="false" stdoutLogFile="..\logs\stdout.log" startupTimeLimit="3600"></httpPlatform> 
    </system.webServer> 
</configuration> 

Для вспомогательного приложения я должен был удалить обработчик httpplatformhandler, чтобы избежать ошибок «не может добавить запись коллекции типа«добавить 'с уникальным атрибутом ключа' name ', установленным в' httpplatformhandler '".

Теперь, когда мы должны использовать kestrel/httpplatformhandler, можно ли запускать его как приложение под сайтом?

ответ

10

Эта проблема началась с beta8 и по-прежнему остается открытой проблемой в RC1. См. ASP.NET IIS Integration issue #14. «Это исправить приближается». говорит @davidfowl. «Это временное решение, пока исправление не будет доступно. Мы работаем с командой httpPlatformHandler, чтобы исправить ошибки, обнаруженные в бета-версии и rc1».

Чтобы обойти эту проблему, чтобы отобразить приложение путь IIS в Startup.Configure как это:

public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
{ 
    app.Map("/MyAppPath", (myAppPath) => this.ConfigureMyAppPath(myAppPath, env)); 
} 

public void ConfigureMyAppPath(IApplicationBuilder app, IHostingEnvironment env) 
{ 
    // the actual Configure code 
} 
+1

Спасибо так много! Это дало мне такую ​​беду! – laurian

+0

Я вытаскивал свои волосы из-за этой проблемы, если бы я мог проголосовать за вас не один раз. – user65439

+0

// фактический код настройки Не могли бы вы рассказать об этом? Я пытаюсь запустить приложение Asp.Net 5 под IIS (не экспресс) в виртуальном каталоге на порту 80 рядом с другими приложениями в виртуальных каталогах. Возможно ли это? – Elton