C# 创建web Api并尝试从iis运行它不起作用

C# 创建web Api并尝试从iis运行它不起作用,c#,asp.net-mvc,iis,asp.net-web-api,C#,Asp.net Mvc,Iis,Asp.net Web Api,当我从VisualStudio启动我的WebAPI应用程序时,一切似乎都运行得很好。但是当我试图发布它并通过IIS7运行它时,它不起作用 第一步,我创建一个名为Person的控制器 public class PersonController : ApiController { // GET: api/Person public IEnumerable<string> Get() { return new string[] { "value1",

当我从VisualStudio启动我的WebAPI应用程序时,一切似乎都运行得很好。但是当我试图发布它并通过IIS7运行它时,它不起作用

第一步,我创建一个名为Person的控制器

public class PersonController : ApiController
{
    // GET: api/Person
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET: api/Person/5
    public string Get(int id)
    {
        return "value";
    }

    // POST: api/Person
    public void Post([FromBody]string value)
    {
    }

    // PUT: api/Person/5
    public void Put(int id, [FromBody]string value)
    {
    }

    // DELETE: api/Person/5
    public void Delete(int id)
    {
    }
public类PersonController:ApiController
{
//获取:api/人
公共IEnumerable Get()
{
返回新字符串[]{“value1”,“value2”};
}
//获取:api/人/5
公共字符串Get(int-id)
{
返回“值”;
}
//职位:空气污染指数/人
公共作废帖子([FromBody]字符串值)
{
}
//PUT:api/人/5
公共void Put(int id,[FromBody]字符串值)
{
}
//删除:api/Person/5
公共无效删除(int-id)
{
}
然后我选择发布,然后选择IIS、FTP等。然后我选择文件系统和根路径:

这是我的文件夹里的文件

然后在IIS中选择“添加新网站”:

现在,当我打开并尝试访问我的控制器时,我发现以下错误:

我是否做错了什么?我导出的文件是否有什么问题


如果您添加了一个网站并将主机名保留为空,则应访问API,网址为

尝试将以下内容添加到托管的web.config中

<system.webServer>
  <modules>
    <remove name="UrlRoutingModule-4.0" />
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
  </modules>
</system.webServer>

已解决。只需在高级设置中将身份设置为本地系统即可

以下是我现在在web配置中所做的:检查网站是否使用了适当的应用程序池。.Net Framework版本:4.0管道模式:集成我更改了它,但我遇到了相同的问题。如果我将运行我的页面,则会打开。但是如果我将运行它,则不会是您第一次使用y我们的IIS与ASPNet?如果是,您可能需要注册您的IIS。您将需要执行以下操作:ASPNet_regiis.exe-i ASPNet_regiis.exe-ga{user}aspnet_regbrowsers.exe-我在这里看到了它不起作用的详细信息。我不明白我的问题在哪里。如果你已经这样做了,但仍然不起作用,请尝试运行iisreset.exe。你应该使用类似
http://localhost:8080/api/person