#c# #asp.net-core
#c# #asp.net-core
Вопрос:
csproj и версия двух проектов :
Веб-проект AspNetCore
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..ControllerController.csproj" />
</ItemGroup>
</Project>
Проект контроллера
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App"/>
</ItemGroup>
</Project>
Код проекта контроллера
using Microsoft.AspNetCore.Mvc;
public class HomeController : Controller
{
public IActionResult Index()
{
return Content("Hello S.O");
}
}
Вопрос
если запустить веб-проект AspNetCore, он получит HTTP ERROR 404
, как мне успешно ссылаться на него?
Комментарии:
1.У меня была такая же проблема, когда я размещал приложение через TestHost, обходным путем было добавление сборки, содержащей контроллеры, вручную в
Startup.cs
service.AddMvc().AddApplicationPart(typeof(HomeController).Assembly);
2. @khoroshevj вы можете ответить ниже, это ответ.
Ответ №1:
У меня была такая же проблема, когда я размещал приложение через TestHost, обходным путем было добавление сборки, содержащей контроллеры, вручную в Startup.cs.
service.AddMvc()
.AddApplicationPart(typeof(HomeController).Assembly);
Комментарии:
1. Это хороший ответ, но это странно, потому что у меня он работает без добавления этой строки. В чем может быть причина?
2. Новая модель хостинга может быть причиной проблемы в этом случае, но я не уверен
3. @ITWeiHan, добавляю пакет nuget
Microsoft.AspNetCore.MVC
в ваш TestWeb. Проект инфраструктуры вместоMicrosoft.NETCore.App
позволяет ему работать без строки, приведенной в приведенном выше ответе. Я использовал AspNetCore. MVC с моей стороны, когда я пытался, следовательно, это сработало.4. @Priyank Panchal да! это ответ без кода редактирования. вы можете изменить приведенный ниже свой ответ.
5. Согласно @PriyankPanchal ответ
InProcess
не имеет к этому никакого отношения. отредактировал мой ответ
Ответ №2:
Я предполагаю, что ваша ссылка на проект в AspNetCore.csproj указывает на неправильный путь.
Пожалуйста, попробуйте изменить
<ProjectReference Include="..ControllerProjectController.csproj" />
Для
<ProjectReference Include="..ControllerController.csproj" />
Редактировать
Использование пакета nuget Microsoft.AspNetCore.MVC
вместо Microsoft.NETCore.App
должно решить проблему без необходимости редактировать startup.cs
файл. Но я лично предпочел бы решение, предоставленное @khoroshevj
Комментарии:
1. извините, мне жаль, что я допустил ошибку, это исправило вопрос. вопрос не в названии