请求的地址在此上下文中无效

时间:2015-03-10 13:35:34

标签: c# wcf

我有一个WCF休息服务定义如下:

static void Main(string[] args)
{
    try
    {
        DOMConfigurator.Configure();
        string serviceUriStr = "http://127.0.0.1:9001/AFMServer";
        Uri serviceUri = new Uri(serviceUriStr);
        _webHost = new WebServiceHost(typeof(AftermathFacade), serviceUri);
        WebHttpBinding binding = new WebHttpBinding(WebHttpSecurityMode.None);
        binding.MaxBufferPoolSize = 2000000000;
        binding.MaxReceivedMessageSize = 2000000000;
        //binding.ReceiveTimeout = TimeSpan.MaxValue;
        //binding.CloseTimeout = TimeSpan.MaxValue;
        //binding.SendTimeout = TimeSpan.MaxValue;
        ////binding.OpenTimeout = TimeSpan.MaxValue;
        _webHost.AddServiceEndpoint(typeof(IAftermathFacade), binding, serviceUriStr);

        ServiceThrottlingBehavior stb = new ServiceThrottlingBehavior();
        stb.MaxConcurrentCalls = 1000;
        stb.MaxConcurrentInstances = 1000;
        stb.MaxConcurrentSessions = 1000;

        ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
        smb.HttpGetEnabled = true;
        _webHost.Description.Behaviors.Add(smb);
        _webHost.Description.Behaviors.Add(stb);


        _webHost.Open();
        _log.Info("Listening on Uri: " + serviceUri.AbsoluteUri);
        Console.ReadLine();
    }
    catch (Exception ex)
    {
        _log.Error(ex.StackTrace);
    }
}

从客户端随机访问此服务会抛出

  

“请求的地址在此上下文中无效”

异常。有时它确实如此,有时却没有,远程呼叫也能正常工作。

我注意到,当服务调用太快时似乎发生了。

例如:

CallServiceMethod1();
CallSericeMethod2();

抛出异常。

然而:

CallServiceMethod1();
sleep(1000);
CallSericeMethod2();

作品!

知道问题可能来自哪里?

请注意,该服务托管在AWS微型实例上(性能非常差)。当我在我的盒子上进行本地测试时,例外不会经常发生。

0 个答案:

没有答案