我正在尝试使用CTP通过OAuth 2.0与Facebook连接.
我可以得到Facebook的初始请求工作正常,但当它回来时我们打电话:
// Where null will become an HttpRequestInfo object
client.ProcessUserAuthorization(null);
Run Code Online (Sandbox Code Playgroud)
我明白了:
远程服务器返回错误:(400)错误请求.
我对初始代码库没有太多帮助; 只是将可选值设置为null(我们仍然在.NET 3.5上).任何线索将非常感激.
此外,我想这对安德鲁来说更具问题; 是否存在任何此类内容的论坛/博客,或任何可定期更新的内容?了解一些事情会很棒:
无论如何,任何建议都是最受欢迎的.
我正在托管一个WCF服务,其中的要求是调用一个WCF服务未直接引用的类型的对象,并在其上运行一些(常见的)方法.所以类型是通过反射和AssemblyResolve创建的:这没关系.
但后来我开始思考 - 我们预计可能会有50到100个这样的装配/类型到货,特别是当我们对它们进行版本控制时.由于所有这些程序集都在mem中引用,因此这应该是膨胀(仍然在理论上而不是实践中)服务主机应用程序的内存和性能.
所以我们应该卸载:但唯一的方法是通过appdomain.我们的想法是,每个程序集都会以某种方式运行在它自己的appdomain中,而WCF服务实际上只是将消息传递给相应的appdomain.如果appdomain未用于some_period_of_time,那么我们只需卸载appdomain即可.
我可能会因此而被标记下来,但是一些指导对我们有用:
我没有这方面的经验.如果我不做这样的事情,我担心的是应用程序的大小和性能.然而,根据应用领域的想法,这基本上听起来像是大规模的过度工程.托管这个未知的.dll的要求不是我可以改变的.
我想我的整体问题是:
这个想法听起来像是愚蠢的,与它相关的专业人士/骗子是什么?
我想定义一个自定义配置部分,并且有一个属性不会产生字符串,而是一个system.type(如果用户输入了一堆垃圾,则为null)
例如:
<myCustomConfig myAnnoyingType="System.String" />
Run Code Online (Sandbox Code Playgroud)
在C#中(在当前的现实世界中)
[ConfigurationProperty("myAnnoyingType")]
public string MyAnnoyingType
{
get { return (string)this["myAnnoyingType"]; }
}
// else where in the app
var stringType = thatConfig.MyAnnoyingType
var actualType = Type.GetType(stringType);
// wow that was boring.
Run Code Online (Sandbox Code Playgroud)
在C#中(在理想世界中)
[ConfigurationProperty("myAnnoyingType")]
public Type MyAnnoyingType
{
get { return (Type)this["myAnnoyingType"]; }
}
Run Code Online (Sandbox Code Playgroud)
我想要的不是必须将项目保存为C#中的字符串,然后将其转换为应用程序中的Type; 我希望这是作为ConfigurationManager职责的一部分自动完成的.
这可能吗?如果必须的话,我可以使用TypeConverter,只是将它保持为字符串似乎很弱,然后在应用程序中进行类型查找.这不难做到,当我知道我正在寻找一种类型时,似乎毫无意义,必须明确地做它的价值.
我正在开发一个应用程序,它需要一种类型的消息才能访问数据库,而另一种类型的消息则需要一些外部的xml api.
我必须处理A LOT ...其中一个重大挑战是让HttpWebRequest类表现良好.我最初开始只使用标准的同步方法和线程整个事情.这不好.
因此,经过一些阅读后,我看到推荐的方法是使用Begin/End方法将工作委托给IO完成端口,从而释放线程池并产生更好的性能.这似乎不是这样的......性能稍微好一些,但我当然看不到与threadpool相比使用的IO完成端口.
我有一个旋转的线程,并向我发送线程池中可用的工作线程+完成端口.完成端口总是非常低(我看到最多使用9个)并且我总是使用大约120个工作线程(有时更多).我在以下所有方法中使用开始/结束模式httpwebrequest
:
Begin/EndGetRequestStream
Begin/EndWrite (Stream)
Begin/EndGetResponse
Begin/EndRead (Stream)
Run Code Online (Sandbox Code Playgroud)
我做得对吗?我错过了什么吗?我可以同时使用(有时)多达2048个http连接(来自netstat输出) - 为什么完成端口号会这么低?
如果有人能就如何处理这个管理工作线程,完成端口提供一些认真的建议,httpwebrequest
那将非常感谢!
编辑:.NET是一个合理的工具吗?我可以使用.NET和System.Net堆栈获得大量的http连接吗?有人建议使用像WinHttp(或其他一些C++库)这样的东西,并从.NET中调用它,但这不是我特别想做的事情!
c# multithreading httpwebrequest threadpool io-completion-ports