2017-01-26 4 views
0

Одно из преимуществ удобства размещения версии веб-приложения на клиентской машине разработчика - это легкость, с которой можно проверить изменения.Ядро ASP.NET и собственное веб-приложение IIS

В традиционном веб-приложении ASP.NET у меня обычно будет такая настройка: веб-приложение IIS или веб-приложение IIS имеет свой физический путь, указывающий на путь проекта веб-приложения ASP.NET.

Это позволяет мне делать изменения, пересобирать при необходимости и удалять обновления в браузере, чтобы мгновенно увидеть эффекты моих изменений.

Теперь, если я хотел чтобы я мог иметь IIS точки на другой путь и опубликовать веб-приложения ASP.NET на это место с каждым изменением, гораздо более громоздким процессом.

Я предпочитаю установку на месте IIS для более быстрого поворота, и мне нужна такая же настройка для ядра ASP.NET, но я не понял, как это сделать. Насколько я могу судить, я могу по крайней мере, сделать следующее:

  • Запустите отладчик в VS (IIS Express или dotnet.exe)
  • Запуск веб-приложений из консоли
  • Опубликовать изменения к другому физическому пути, который отображается на сайте IIS/веб-приложении.

Оба эти варианта работают, но обстоятельства сговариваются, чтобы затруднить управление результатом: обычно я работаю как с клиентом, так и с сервисом, а клиент часто использует несколько веб-приложений службы. Поэтому мне, как правило, необходимо одновременно работать с несколькими веб-приложениями, и вам необходимо часто их обновлять.

Хотя IIS предоставляет эту возможность в моих классических приложениях ASP.NET, я не уверен, что продолжаю ее использовать. Любой другой способ добиться плавного поворота будет приемлемым :)

Итак, какие-нибудь советы?

-S

+0

работает 'dotnet publish' действительно так громоздко? Учитывая, что он делает именно то, что вам нужно для этого, почему бы просто не использовать его? –

+0

Запуск публикации в dotnet - это то, что я использую сейчас, потому что это работает. Тем не менее, я не доволен этим, так как считаю, что это шаг назад с точки зрения изменения/проверки по сравнению с тем, что мы достигли на нашем стандартном ASP.NET. –

ответ

0

Хорошо, я звоню его на этом: Это, кажется, не является жизнеспособным вариантом.

Я дам это попробовать вместо:

В моих услугах я принимаю запустить URL, как описано в этом посте:

dotnet run web site with specific url

PowerShell скрипт запускает список услуг в новый консольные окна с помощью Dotnet часов пробега:

$services = Get-Content .\services.json -Raw | ConvertFrom-Json; 

foreach($serviCe in $services) 
{ 
    $expression = "cmd /c start powershell -Command {" 
    $expression += "Write-Host $($service.name) -ForegroundColor Yellow;" 
    $expression += "Write-Host $($service.urls) -ForegroundColor Yellow;" 
    $expression += "Set-Location $($service.path);" 
    $expression += "Invoke-Expression `"dotnet watch run --server.urls=$($service.urls)`";" 
    $expression += "sleep(10);" 
    $expression += "}" 
    Invoke-Expression $expression 
    sleep(1); 
} 

А вот и services.json со списком услуг:

[ 
    { 
    "name": "Products", 
    "path": "C:\\Services\\src\\Products", 
    "urls": "http://localhost:5000" 
    }, 
    { 
    "name": "Customers", 
    "path": "C:\\Services\\src\\Customers", 
    "urls": "http://localhost:5001" 
    }, 
    { 
    "name": "Statistics", 
    "path": "C:\\Services\\src\\Statistics", 
    "urls": "http://localhost:5002" 
    } 
]