如果我尝试使用Fiddler访问Web Api(我创建了一个非常简单的GET方法,返回有关程序集的一些信息),我会收到404错误。目前,我在同一台机器上运行Fiddler,因此我尝试了所有组合(本地主机名、IP地址和完整机器名称在域中)。
在EventViewer中没有记录任何错误。有人对如何解决这个问题有什么建议吗?
TIA, Eddie 编辑1:这是我的控制器:
[Route("api/info")]
//[RequireHttps]
public class InfoController : Controller
{
private ITncRepository _repository;
public static ApplicationAssemblyDetails ApplicationAssemblyDetails { get; set; }
public InfoController(ITncRepository repository)
{
_repository = repository;
ApplicationAssemblyDetails = ApplicationAssemblyDetails.Current;
}
[HttpGet("")]
public JsonResult Get()
{
return Json(new WebApiInfoModel()
{
CurrentTime = DateTime.Now,
CurrentUtcTime = DateTime.UtcNow,
AssemblyName = ApplicationAssemblyDetails.ApplicationAssembly.FullName,
VersionNumber = ApplicationAssemblyDetails.VersionNumber,
BinFolder = ApplicationAssemblyDetails.BinFolder,
BuildMode = ApplicationAssemblyDetails.BuildMode,
TradeMark = @" © 2016-2017 * SomeCompany (www.somecompany.com)"
});
}
}
ApplicationAssemblyDetails是一个NuGet包,它提供了有关当前程序集的一些信息。WebApiInfoModel是我用于传递Web API信息给客户端的模型类。
web.config文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\My_ASP_NET_Core_Web_API.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="true" />
</system.webServer>
</configuration>
最后,来回答你的最后一个问题,Ignas。我使用一种发布配置文件,它使用文件系统作为方法,以.NET Framework 4.5.2为目标,使用发行配置。鉴于我的项目是Web API而不是MVC 6 Web应用程序,发布包会创建一个独立的应用程序。由于客户端需要使用SSL调用我的Web API,所以我认为它必须托管在IIS中,因此运行独立的应用程序将不起作用。当然,出于测试目的,我可以尝试运行它。这就是为什么我注释了[HttpsRequired]属性。我会尝试并报告结果,但现在我希望我提供了您所需的所有信息。
exe
)还是框架相关的(dll
)?如果你直接运行它,而不是通过IIS,它能正常工作吗? - Ignas