当前位置: 首页 > 知识库问答 >
问题:

POST/GET适用于VS Development server,但不适用于IIS7

公西季
2023-03-14

我使用ASP.NET MVC4(VS2010 SP1,Windows 7)创建了一个网页。它也有一个api通过什么我可以做一个搜索或上传一些东西(数据和文件)。当我在VS2010 SP1的开发服务器上部署页面时,一切都正常工作,但当我选择IIS(IIS7)时,api不再工作。“issuccessStatusCode”似乎是假的。但是页面本身可以工作,可以从其他机器访问。

这是我用于内置开发服务器的地址:“http://localhost:56272/api/”,而我用于IIS的地址:“http://127.0.0.1/api/”

 public MyService(string serviceAdress) //"http://127.0.0.1/api/"
        {
            this.serviceAdress = new Uri(serviceAdress); //of type Uri
            client = new HttpClient();
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));
        }
    public Task<IEnumerable<Item>> SearchByTag(string tag)
    {
        client.BaseAddress = serviceAdress;
        var getStuffCall=client.GetAsync("Search/ByTag/" + tag);
        var r=getStuffCall.ContinueWith(
            t =>t.Result.IsSuccessStatusCode? (t.Result.Content.ReadAsAsync<IEnumerable<Item>>().Result):new List<Item>()
            );
        return r;
    }

我的服务器端如下所示:

public class SearchController : ApiController
    {
        [HttpGet]
        public IEnumerable<Shared.Item> ByTag(string search)
        {....}
    }

这是webapiconfig中的路由:

config.Routes.MapHttpRoute(
            name: "SearchApi",
            routeTemplate: "api/Search/{action}/{search}",
            defaults: new
                          {
                              controller="Search"                                  
                          }
        );

共有1个答案

壤驷升
2023-03-14

您需要确保web站点和应用程序池的用户对执行上载的目录具有写权限。在开发服务器中,它不起作用,因为它运行在具有正常特权的本地(或域)帐户下。IIS7是在一个受限制的用户帐户下运行的,因此必须调整它的权限,或者上载到的文件夹需要包括这个具有写权限的用户。

有关调整权限的具体说明可以在以下位置找到:http://support.microsoft.com/kb/979124

 类似资料:
  • 我正在尝试将angular2应用程序与rails api连接起来。 为了使用rails身份验证,我希望能够在两个域之间共享cookies。当我在angular应用程序中调用http GET时,我会返回一个带有预期设置cookie字段的响应,当我发送下一个GET请求时,cookie也会随之发送。然而,当我将第二个GET替换为一个POST时,它不是。对于两个调用,我都使用withCredentials

  • 关于redash,我有一个问题。这是请求。在上,它工作得很好。查询示例: 但在axios上,它抛出: 网络错误 并在控制台上写: 访问XMLHttpRequest at

  • 我的Spring Boot应用程序提供了几个endpoint。在本文之后,我想在默认情况下限制所有endpoint,以便它们需要通过JWT令牌进行身份验证。只有某些路径是公共的。我的理解是,将在没有任何身份验证的情况下“公开”。 这对于方法很好,但是当用命中同一个endpoint时,我会得到一个HTTP 403(禁止)。我不明白这是为什么。 这是我当前的安全配置: 控制器:

  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

  • 列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。