小编Dar*_*ler的帖子

WCF Web Api与WebHttpBinding

我是WCF RESTFull服务开发的新手,我正在寻找一些有用的信息以及有关使用webHttpBinding的经验反馈,与新的WCF Web API http://wcf.codeplex.com/相比.

我正在寻找的是了解webHttpBinding的缺点,以及为什么要使用新的Web api,特别是新API解决的问题.如果你能指点我一些博客文章比较他们或只是谈论使用webHttpBinding时的问题我会很感激.先感谢您.

wcf webhttpbinding wcf-web-api

18
推荐指数
1
解决办法
5233
查看次数

如何从命令行参数中选择.Net应用程序配置文件?

我想通过传递命令行参数来覆盖标准app.config的使用.如何更改默认应用程序配置文件,以便在访问ConfigurationManager.AppSettings时访问命令行中指定的配置文件?

编辑:

事实证明,加载与EXE加上.config名称不同的配置文件的正确方法是使用OpenMappedExeConfiguration.例如

ExeConfigurationFileMap configFile = new ExeConfigurationFileMap();
configFile.ExeConfigFilename = Path.Combine(Environment.CurrentDirectory, "Shell2.exe.config");
currentConfiguration = ConfigurationManager.OpenMappedExeConfiguration(configFile,ConfigurationUserLevel.None);
Run Code Online (Sandbox Code Playgroud)

这部分有效.我可以在appSettings部分看到所有键,但所有值都为null.

.net configuration configurationmanager

16
推荐指数
1
解决办法
1万
查看次数

ASP.NET Web API:如何在Web API控制器中读取服务器变量?

您将如何在ASP.NET Web API控制器中读取以下服务器变量?

HTTP_HOST
SERVER_NAME
REMOTE_HOST / REMOTE_ADDR
Run Code Online (Sandbox Code Playgroud)

我看到定义了System.Net.Http.HttpRequestMessage请求,但是我没有看到包含这些变量的集合.

我在一个带有多个主机头的IP上运行一个网站,我需要确定他们用来到那里的网站.

编辑:

结果是这样的:

((System.Web.HttpContextWrapper) Request.Properties["MS_HttpContext"])
    .Request.ServerVariables["HTTP_HOST"]
Run Code Online (Sandbox Code Playgroud)

asp.net-web-api

16
推荐指数
1
解决办法
2万
查看次数

为什么SQL连接选择次优查询计划?

好的,所以我意识到这是一个非常模糊的问题,但请耐心等待.

我在很多场合遇到过这个问题,并且有不同的和不相关的查询.下面的查询需要很多分钟才能执行:

SELECT <Fields>
FROM <Multiple Tables Joined>
    LEFT JOIN (SELECT <Fields> FROM <Multiple Tables Joined> ) ON <Condition>
Run Code Online (Sandbox Code Playgroud)

但是,只需添加连接提示,它就可以在几秒钟内查询执行:

SELECT <Fields>
FROM <Multiple Tables Joined>
    LEFT HASH JOIN (SELECT <Fields> FROM <Multiple Tables Joined> ) ON <Condition>
Run Code Online (Sandbox Code Playgroud)

奇怪的是,提示中指定的JOIN类型并不是真正改善性能的因素.这似乎是因为提示导致优化器单独执行子查询然后加入.如果我为子查询创建一个表值函数(不​​是内联函数),我会看到相同的性能改进.例如

SELECT <Fields>
FROM <Multiple Tables Joined>
    LEFT JOIN dbo.MySubQueryFunction() ON <Condition>
Run Code Online (Sandbox Code Playgroud)

任何人都有任何想法为什么优化器在这种情况下是如此愚蠢?

sql sql-server

15
推荐指数
2
解决办法
2413
查看次数

如何在ASP.NET Web API中设置默认序列化程序?

我目前正在观看有关ASP.NET Web API的视频课程.调用控制器时,默认情况下会以JSON格式返回数据.我只是想知道,因为当我从视频中复制这个示例项目时,我得到了XML.

沮丧很大,请帮我解决这个问题.

我是ASP.NET Web API的新手,所以请耐心等待.

UPDATE

控制器不包含特殊代码.这是简单的代码,它是从带有空读/写操作模板的API控制器生成的.

asp.net-web-api

14
推荐指数
3
解决办法
6863
查看次数

使用MultipartFormDataContent生成错误的Content-Type标头

我有以下代码:

private static string boundary = "----CustomBoundary" + DateTime.Now.Ticks.ToString("x");

private static async Task<string> PostTest()
{
    string servResp = "";

    using (var content = new MultipartFormDataContent(boundary))
    {
        content.Add(new StringContent("105212"), "case-id");
        content.Add(new StringContent("1/14/2014"), "dateFrom");
        content.Add(new StringContent("1/15/2014"), "dateTo");

        HttpClientHandler handler = new HttpClientHandler();
        cookieContainer = new CookieContainer();
        handler.CookieContainer = cookieContainer;

        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://somewebsite.com/form");
        request.Headers.ExpectContinue = false;
        request.Content = content;

        httpClient = new HttpClient(handler);

        HttpResponseMessage response = await httpClient.SendAsync(request);
        response.EnsureSuccessStatusCode();

        servResp = await response.Content.ReadAsStringAsync();
    }

    return servResp;
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我在Fiddler中看到了Content-Type标头:

Content-Type: multipart/form-data; …
Run Code Online (Sandbox Code Playgroud)

c# content-type multipartform-data .net-4.5 dotnet-httpclient

14
推荐指数
1
解决办法
1万
查看次数

ASP.NET WebApi Post方法 - 404传递参数时

我不能为我的生活弄清楚这一点.我有一个带有Get和Post方法的web api控制器.使用和不使用参数时,Get方法可以正常工作,但是当我尝试向其添加String参数时,帖子会中断.以下是我的代码.

路线:

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "{controller}/{id}",
            defaults: new { id = UrlParameter.Optional }
        );
Run Code Online (Sandbox Code Playgroud)

控制器:

public class AuditController : ApiController
{
    public String Post(String test)
    {
        return "Success : " + test;
    }

    public String Get(String test)
    {
        return "Success : " + test;
    }
}
Run Code Online (Sandbox Code Playgroud)

请求:

    var request = WebRequest.Create("http://localhost:42652/Audit");
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        using (var writer = new StreamWriter(request.GetRequestStream()))
        {
            writer.Write("test=TEST");
        }
        WebResponse webResponse = request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多变化请求,我觉得有一些简单的我缺少.谢谢你的帮助.

c# httpwebrequest asp.net-web-api

13
推荐指数
1
解决办法
9612
查看次数

HttpClient不保存Cookie

我正在使用新的HttpClient来处理我项目的网上冲浪需求; 但是,尽管设置正确,但HttpClient不会将cookie保存到Cookie容器中,并且它始终为EMPTY.

private CookieContainer _cookieContainer = new CookieContainer();
private HttpClient HttpClient { get; set; }
private HttpClientHandler HttpClientHandler { get; set; }

public Initialize()
{
    HttpClientHandler = new HttpClientHandler
                            {
                                AllowAutoRedirect = true,
                                UseCookies = true,
                                CookieContainer = _cookieContainer
                            };
    HttpClient = new HttpClient(HttpClientHandler);
}

public CookieContainer Cookies
{
    get { return _cookieContainer; }
    set { _cookieContainer = value; }
}

public void TEST()
{
    //This is always empty, although I am sure that the site is saving login …
Run Code Online (Sandbox Code Playgroud)

c# dotnet-httpclient

12
推荐指数
1
解决办法
1万
查看次数

REST WCF服务中的事务

我们正在使用REST WCF服务.我们希望此REST服务上的保存操作处于事务中.有没有办法通过线路将Transaction对象传递给REST WCF服务?

rest wcf transactions wcf-rest

10
推荐指数
1
解决办法
4762
查看次数

.net 4.5 ASP.Net Web API JSONP支持

有谁知道JSONP在.net 4.5 ASP.NET WEB API中是否支持返回?

对于早期版本的MVC.net或者.net,我发现了很多"自己动手",但似乎没有任何特定于以后的版本.

我意识到这可能是因为他们的早期版本将使用.net 4.5堆栈,但我很好奇是否有人已经被烘焙.

asp.net-mvc-4 .net-4.5 asp.net-web-api

9
推荐指数
1
解决办法
1万
查看次数