Asp.net web api Web API 404错误
调用web api方法时出现404错误 下面是我的代码 Web API控制器:Asp.net web api Web API 404错误,asp.net-web-api,Asp.net Web Api,调用web api方法时出现404错误 下面是我的代码 Web API控制器: [EnableCors(origins: "*", headers: "*", methods: "*")] public class HomeController : ApiController { private HomeDataProvider homeDataProvider = new HomeDataProvider(); // GET api/<controller>
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class HomeController : ApiController
{
private HomeDataProvider homeDataProvider = new HomeDataProvider();
// GET api/<controller>
[AllowAnonymous]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
[AllowAnonymous]
[HttpPost]
//[Authorization]
public List<User> Test_API(HomeSearch searchParam)
{
List<User> Test_User = null;
try
{
Test_User = homeDataProvider.Test_DataProvider(searchParam);
}
catch (Exception ex)
{
throw ex;
}
finally
{
}
return Test_User;
}
Web API Web.config
<appSettings></appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
<roleManager enabled="false" />
<!--<roleManager defaultProvider="AspNetWindowsTokenRoleProvider"
enabled="true" />-->
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
</modules>
<handlers>
</handlers>
</system.webServer>
I am using windows 10, vs 2015, iis 10
url i am calling
http://localhost/webapi/home/get
Error: 404, static handler error
我使用的是windows 10,vs 2015,iis 10
我打电话来
http://localhost/webapi/home/get
错误:404,静态处理程序错误
我搜索并尝试了stackoverflow和其他源上的所有选项,但都没有成功我认为您需要将
{action}
添加到路由模板中,或者尝试调用端点而不在URL中获取,如下所示:
http://localhost/webapi/home
我认为您要么需要将
{action}
添加到路由模板中,要么尝试调用端点而不进入URL,如下所示:
http://localhost/webapi/home
我找到了答案
实际上:
在Web API设置中:
我选择了:本地iis、本地主机/webapi。。。创建虚拟目录
所以我的路线是
localhost/webapi/webapi/home/get
感谢Alex的帮助和您发布的可能解决方案…我找到了答案
实际上:
在Web API设置中:
我选择了:本地iis、本地主机/webapi。。。创建虚拟目录
所以我的路线是
localhost/webapi/webapi/home/get
感谢Alex提供的帮助和可能的解决方案…在IIS(Windows 10)和localhost上发布WebApi
这些只是我的个人经历,不是一个完整的指南,但对我来说很有用
2017/2019年在Visual Studio中发布
- 概要文件发布方法:文件系统
- 目标位置指向要发布到的目录,即“C:\Develop\MyWebApi\published”
- 控制面板/程序/程序和功能/打开Windows功能 或离线/互联网信息服务/万维网服务/应用程序开发功能/选择除CGI之外的所有内容
- 名称:可自由选择,即“WebApiLocalhost”
- .Net CLR版本: 4.0(别担心,您的WebApi可以有更高的级别)
- 标识:“本地系统” 通常建议:“ApplicationPoolIdentity”(默认)。然后,该用户必须对WebApi的发布目录具有文件系统权限(读取和执行) (“在我们的示例中是C:\develope\MyWebApi\published”),在所有目录上,WebApi可能会稍后寻址。“ApplicationPoolIdentity”可能存在的问题是,它的伪用户“IIS AppPool\”只存在于本地计算机上,而不存在于域中。这可能会导致在为外部服务器的文件夹分配权限时出现问题 注意:如果您只需要本地文件夹的权限,并且希望使用伪用户“IIS AppPool\”并且您的计算机位于域中,则默认情况下无法找到此用户。您必须首先通过“位置…”按钮选择本地计算机 对于标识“LocalSystem”,系统用户“IUSR”必须接收相应的文件系统权限 第三种选择是使用密码将身份硬连接到本地用户。但这样做的缺点是,密码更改总是必须在此处跟踪,这通常会被遗忘
- 绑定:HTTP,选择一个空闲端口,即8094,无IP地址,无主机 名字
- 应用程序池:您的应用程序池,在我们的示例中:WebApiLocalhost
- 物理路径:指向WebApi的“发布”目录,这里是“…MyWebApi/published”
- %ApplicationPoolIdentity下IIS Webapplications中的LOCALAPPDATA% “LocalSystem”指向 “C:\Windows\system32\config\systemprofile\AppData\Local\”而不是 Vc:\Users\\AppData\Local\”。这意味着:如果您有其他 应用程序文件,如config.xmls或低于%LOCALAPPDATA%的类似文件, 确保它们也存在于IUSR的%LOCALAPPDATA%中
- 系统用户“IUSR”必须具有对 WebApi的发布文件夹(在示例中) “C:\Develop\MyWebApi\published”)以及所有使用的文件夹 在WebApi应用程序中。因此可能是: “c:\Windows\system32\config\systemprofile\AppData\Local…”和 可能在外部目录上
- 在特定于客户端的更改之后,尤其是在Javascript中 在新测试之前,必须删除浏览器缓存 (通过Ctrl-Shift-Del进行Chrome操作)
- “c:\Users\\AppData\Local\Microsoft\WebsiteCache\”可能包含 应用程序文件的过期版本-我搜索了几个小时。 解决方案:删除以下特定于应用程序的文件夹…\WebsiteCache\ 定期
- 概要文件发布方法:文件系统
- 目标位置指向要发布到的目录,即“C:\Develop\MyWebApi\published”
- 控制面板/程序/程序和功能/打开Windows功能 或离线/互联网信息服务/万维网服务/应用程序开发功能/选择除CGI之外的所有内容