ডাব্লুসিএফ পরিষেবাতে সময়সীমা মান বাড়ানো


133

আমি কীভাবে ডাব্লুসিএফ পরিষেবাটিতে ডিফল্ট সময়সীমা 1 মিনিটের চেয়ে বড় করতে পারি?


যা পরিষ্কার নয়, তবে আমি মনে করি আপনি স্পষ্টভাবে জিজ্ঞাসা করছেন, এটি প্রক্রিয়া করতে এক মিনিটের বেশি সময় লাগে এমন কোনও কলকে টাইমআউট করার জন্য সার্ভারের পক্ষ থেকে কনফিগার করা সম্ভব কিনা। এটি সম্ভব নয়
গ্র্যাভিডফটগুলি

উত্তর:


196

আপনি কি সার্ভার সাইড বা ক্লায়েন্ট সাইডের কথা উল্লেখ করছেন?

কোনও ক্লায়েন্টের জন্য, আপনি একটি বাধ্যতামূলক উপাদানটির সেন্ডটাইমআউট বৈশিষ্ট্যটি সামঞ্জস্য করতে চান । একটি পরিষেবার জন্য, আপনি একটি বাধ্যতামূলক এলিয়েনেন্টের রিসিটটাইমআউট বৈশিষ্ট্যটি সামঞ্জস্য করতে চান ।

<system.serviceModel>
  <bindings>
    <netTcpBinding>
      <binding name="longTimeoutBinding"
        receiveTimeout="00:10:00" sendTimeout="00:10:00">
        <security mode="None"/>
      </binding>
    </netTcpBinding>
  </bindings>

  <services>
    <service name="longTimeoutService"
      behaviorConfiguration="longTimeoutBehavior">
      <endpoint address="net.tcp://localhost/longtimeout/"
        binding="netTcpBinding" bindingConfiguration="longTimeoutBinding" />
    </service>
....

অবশ্যই, আপনাকে সেই নির্দিষ্ট বাঁধার জন্য আপনার পছন্দসই শেষ পয়েন্টটি মানচিত্র করতে হবে।


শেষ পয়েন্ট ট্যাগের অভ্যন্তরে 'বাইন্ডিংনাম' ব্যবহার করে আমি কীভাবে বাইন্ডিংটিকে মানচিত্র করব?
খালি

এই কেবল ভুল দ্য receiveTimeoutঅধিবেশন ভিত্তিক বাইন্ডিং জন্য আলস্যের সার্ভার প্রান্তের নিয়ন্ত্রণ সংকল্প করেন। উদাহরণস্বরূপ, সার্ভার বেসিক এইচটিটিপি বাইন্ডিংগুলির জন্য এই সেটিংটি ব্যবহার করবে না। আপনাকে ডাব্লুসিএফ
গ্রাভিডথহটসের

45

ভিজ্যুয়াল স্টুডিও ২০০৮-এর সরঞ্জাম মেনুর অধীনে (বা 2005 যদি আপনার ডান WCF স্টাফ ইনস্টল থাকে) সেখানে 'ডাব্লুসিএফ পরিষেবা কনফিগারেশন এডিটর' নামে একটি বিকল্প রয়েছে।

সেখান থেকে আপনি ক্লায়েন্ট এবং পরিষেবা উভয়ের জন্য বাধ্যতামূলক বিকল্পগুলি পরিবর্তন করতে পারেন, এই বিকল্পগুলির মধ্যে একটি সময় সময়সীমার জন্য হবে।


উপাদানগুলি ভুল উপায়ে গুছানো, বানান ইত্যাদির মতো ত্রুটিগুলি এড়াতে যাওয়ার দুর্দান্ত উপায় Good
markaaronky

: লগ ফাইল খোলার জন্য অন্যান্য টুল জন্য এখানে দেখতে stackoverflow.com/a/34283667/187650
juFo

8

বিভিন্ন সময়সীমার অর্থ ভিন্ন জিনিস। আপনি যখন ক্লায়েন্টের সাথে কাজ করছেন .. আপনি সম্ভবত বেশিরভাগই সেন্ডটাইমআউটটির দিকে তাকিয়ে রয়েছেন - এই রেফারেন্সটি দেখুন - দুর্দান্ত এবং প্রাসঙ্গিক ব্যাখ্যা: http ://social.msdn.mic Microsoft.com/ Forums/en-US/wcf/thread / 84551e45-19a2-4d0d-bcc0-516a4041943d /


8

আপনি দুটি উপায় চয়ন করতে পারেন:

1) ক্লায়েন্ট কোড দ্বারা

public static void Main()
{
    Uri baseAddress = new Uri("http://localhost/MyServer/MyService");

    try
    {
        ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService));

        WSHttpBinding binding = new WSHttpBinding();
        binding.OpenTimeout = new TimeSpan(0, 10, 0);
        binding.CloseTimeout = new TimeSpan(0, 10, 0);
        binding.SendTimeout = new TimeSpan(0, 10, 0);
        binding.ReceiveTimeout = new TimeSpan(0, 10, 0);

        serviceHost.AddServiceEndpoint("ICalculator", binding, baseAddress);
        serviceHost.Open();

        // The service can now be accessed.
        Console.WriteLine("The service is ready.");
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine();
        Console.ReadLine();

    }
    catch (CommunicationException ex)
    {
        // Handle exception ...
    }
}

2) একটি ওয়েব সার্ভারে ওয়েবকনফিগ দ্বারা

<configuration>
  <system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding openTimeout="00:10:00" 
                 closeTimeout="00:10:00" 
                 sendTimeout="00:10:00" 
                 receiveTimeout="00:10:00">
        </binding>
      </wsHttpBinding>
    </bindings>
  </system.serviceModel>

আরও তথ্যের জন্য সরকারী নথি দেখুন

একটি বাইন্ডিংয়ে টাইমআউট মানগুলি কনফিগার করা

ক্লাস ডাব্লুএসএইচটিপিবান্ডিং


0

বাঁধাইয়ের সময়সীমা ছাড়াও (যা Timespanগুলি রয়েছে), আপনার এটিরও প্রয়োজন হতে পারে। এটি কয়েক সেকেন্ডের মধ্যে।

<system.web>
    <httpRuntime executionTimeout="600"/><!-- = 10 minutes -->
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.