我需要通过另一个Web服务与Web服务并行运行多个HTTP Web请求。
我在这里找到了相关的相关解决方案: Trying to run multiple HTTP requests in parallel, but being limited by Windows (registry) Trying to run multiple HTTP requests in parallel, but being limited by Windows (registry)
我的问题与此问题类似。
之前,我通过C#WinForms应用程序在我的机器上多次并行调用Web服务。 那时,使用ServicePointManager.DefaultConnectionLimit解决了我的问题。
现在,我的要求已经改变了。 还有另一个应用程序,现在只有1个网页的Web服务,由多个用户并行调用。此Web服务调用其他Web服务,因此我们有多个并行调用从Web服务器计算机发出。
我是Web中的菜鸟,所以我无法弄清楚我需要在Web服务上设置ServicePointManager.DefaultConnectionLimit。 (我在我的Winforms App中的Main()中进行了。)
我的问题是在哪里指定ServicePointManager.DefaultConnectionLimit ??
Web服务没有Main(),它只有一个Global.asax,它主要有代码片段和管道。
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
public Global()
{
InitializeComponent();
}
protected void Application_Start(Object sender, EventArgs e)
{
AppDomain.CurrentDomain.UnhandledException +=new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
this.Initialise();
}
#region Web Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
//
// Global
//
this.Error += new System.EventHandler(this.Global_Error);
}
#endregion
private void Global_Error(object sender, System.EventArgs e)
{
HandleLastError();
}
protected void Application_Error(Object sender, EventArgs e)
{
HandleLastError();
}
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Exception unhandledException = (Exception)e.ExceptionObject;
HandleException(unhandledException);
}
private void HandleLastError()
{
Exception lastError = Server.GetLastError();
HandleException(lastError);
}
private static void HandleException(Exception exception)
{
Logger logger = new Logger(typeof(CreditCheck));
string lastErrorMessage = (exception == null ? "No exception" : exception.Message);
logger.Error(lastErrorMessage, exception);
}
我的问题是在哪里指定ServicePointManager.DefaultConnectionLimit ??
只有一个.asmx(和.asmx.cs)文件,它只包含完成我工作的函数。 该函数应该调用其他Web服务。 每次Web服务命中时都会调用此函数(1秒钟内多次 - 大约10次),因此我不确定我是否可以在此处指定ServicePointManager.DefaultConnectionLimit,因为这意味着在每次点击时重置它。
此外,它托管在共享服务器上,所以我不想弄乱注册表项值,但我很乐意以编程方式进行此更改。
非常感谢任何帮助。
答案 0 :(得分:0)
只是一个想法伙计们,我可以把它放进去 protected void Application_Start(Object sender,EventArgs e){}?
或者还有其他东西调用Application_Start()。
无论如何,我可以确定这个WebService的起点吗? (来自项目属性还是WebServices中的默认属性?)