ডাব্লুসিএফ ত্রুটি - চুক্তি 'ব্যবহারকারীর সেবা। ব্যবহারকারীকর্ম' উল্লেখ করে এমন ডিফল্ট এন্ডপয়েন্ট উপাদান খুঁজে পাওয়া যায় নি


98

এটা ঠিক করার কোন ধারনা তোমার আছ?

UserService.UserServiceClient userServiceClient = new UserServiceClient();
            userServiceClient.GetUsersCompleted += new EventHandler<GetUsersCompletedEventArgs>(userServiceClient_GetUsersCompleted);
            userServiceClient.GetUsersAsync(searchString);

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_UserService" 
                     maxBufferSize="2147483647" 
                     maxReceivedMessageSize="2147483647">
                <security mode="None" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://localhost:52185/UserService.svc" 
                  binding="basicHttpBinding" 
                  bindingConfiguration="BasicHttpBinding_UserService" 
                  contract="UserService.UserService"
                  name="BasicHttpBinding_UserService" />
    </client>
    <behaviors>
        <serviceBehaviors>
            <behavior name="Shell.Silverlight.Web.Service3Behavior">
                <serviceMetadata httpGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    <services>
        <service behaviorConfiguration="Shell.Silverlight.Web.Service3Behavior" 
                 name="Shell.Silverlight.Web.Service3">
            <endpoint address="" 
                      binding="basicHttpBinding" 
                      contract="Shell.Silverlight.Web.Service3" />
            <endpoint address="mex" 
                      binding="mexHttpBinding" 
                      contract="IMetadataExchange" />
        </service>
    </services>
</system.serviceModel>

সার্ভিস মডেল ক্লায়েন্ট কনফিগারেশন বিভাগে চুক্তি 'ব্যবহারকারীর পরিষেবা। ব্যবহারকারীর পরিষেবা' উল্লেখ করে এমন ডিফল্ট এন্ডপয়েন্ট উপাদান খুঁজে পাওয়া যায় নি। এটি হতে পারে কারণ আপনার অ্যাপ্লিকেশনের জন্য কোনও কনফিগারেশন ফাইল পাওয়া যায় নি বা ক্লায়েন্টের উপাদানটিতে এই চুক্তির সাথে মেলে এমন কোনও শেষ পয়েন্ট উপাদান খুঁজে পাওয়া যায়নি।

সমাধান হয়েছে!

আমি উল্লেখ করি নি যে এটি সিলভারলাইট অ্যাপ্লিকেশন ছিল। আমার কাছে একটি ডিএলএল-তে ডাব্লুসিএফ রেফারেন্স ছিল যা এর নিজস্ব "সার্ভিস রেফারেন্স.স্লায়েন্টকনফিগ" ফাইল ছিল। আমি ডিএলএল এর সার্ভিস রেফারেন্স.সামগ্রী কনফাইগের বিষয়বস্তুগুলিকে মূল সিলভারলাইট প্রকল্পে সরিয়েছি এবং এটি কার্যকর হয়েছে।


যদি ডিএলএল চালিত অ্যাপ্লিকেশনটি তৃতীয় পক্ষ হয়, যেমন ডিএলএল অন্য অ্যাপ্লিকেশনটির জন্য একটি প্লাগইন?
স্টেফানোস কার্গাস

উত্তর:


186

একই সমস্যাটি নিয়ে আমার রান ছিল। আমার অ্যাপ্লিকেশনটিও একটি সিলভারলাইট অ্যাপ্লিকেশন ছিল এবং এটিতে ব্যবহৃত একটি কাস্টম ইউজারকন্ট্রোল সহ ক্লাসের পাঠাগার থেকে পরিষেবাটি কল করা হয়েছিল।

সমাধান সহজ। ক্লাস লাইব্রেরির কনফিগারেশন ফাইল (যেমন সার্ভিস রেফারেন্স.স্লায়েন্টকনফিগ) থেকে শেষ পয়েন্টের সংজ্ঞাগুলি সিলভারলাইট অ্যাপ্লিকেশনটির কনফিগার ফাইলটিতে অনুলিপি করুন। আমি জানি আপনি এটি না করেই এটি কাজ করার আশা করতেন, তবে স্পষ্টতই রেডমন্ডের কারও ছুটির দিন ছিল সেদিন।


50
এই দ্রষ্টব্যটি এএসপি.এনইটি এবং এমভিসি প্রকল্পগুলির জন্যও বৈধ। আপনি যদি কোনও ক্লাস লাইব্রেরিতে পরিষেবাটি যুক্ত করেন তবে এটি বাক্সটি কার্যকর করবে না, আপনার লাইব্রেরি প্রকল্পের app.config থেকে system.serviceModel বিভাগটি ধরুন এবং আপনার ওয়েবকনফাইগে রাখুন।
অ্যাডাম পোপ

4
দেখে মনে হচ্ছে এটি যে কোনও প্রকারের প্রকল্পের ক্ষেত্রে সত্য, আমি কোয়ার্টজ নেটকে উইন্ডোজ পরিষেবা হিসাবে ব্যবহার করেছিলাম এবং একটি ভিন্ন সমাবেশে একটি চাকরী ছিল যা ওয়েব পরিষেবাটি উল্লেখ করেছিল fere এটি আমার জন্যও কাজ করেছিল। ধন্যবাদ.
থিয়াগোলেট

4
হাই, এটি একটি উইন্ডোজ ফোন প্রকল্পের জন্যও কাজ করেছিল। যেমন @ থিয়েগোলাইট বলেছে মনে হচ্ছে এটি বেশিরভাগ প্রকল্পের জন্য কাজ করছে।
থানুশকা

4
রেডমন্ড অবকাশের রসিকতার জন্য +1 ... যাইহোক, এর সাথে খেলার পরিবর্তে কোনও বাহ্যিক ফাইল হিসাবে যুক্ত করার কোনও উপায় আছে web.configকি?
শিমি ওয়েটজ্যান্ডলার

4
@ স্প্রিট আমি কোডে আমার প্রয়োজনীয় সেটিংস সেট করে শেষ করেছি (আমি ক্লায়েন্ট নির্মাতাকে ওভাররাইড করেছি), বিশাল এর উত্তর হিসাবে । এইভাবে এটি অ্যাসেমব্লির ওপরে চালিত হয়। ধন্যবাদ!
শিমি ওয়েটজ্যান্ডলার

45

আপনি ক্লাস লাইব্রেরিতে এই মানগুলি ক্রমানুসারে সেট করতে পারেন, এটি লাইব্রেরি জুড়ে কনফিগার ফাইলগুলির অপ্রয়োজনীয় চলন এড়াতে পারে। সাধারণ বাসসিএইচটিপিবাইন্ডিংয়ের উদাহরণ কোডটি হ'ল -

BasicHttpBinding basicHttpbinding = new BasicHttpBinding(BasicHttpSecurityMode.None);
basicHttpbinding.Name = "BasicHttpBinding_YourName";
basicHttpbinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
basicHttpbinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;

EndpointAddress endpointAddress = new EndpointAddress("http://<Your machine>/Service1/Service1.svc");
Service1Client proxyClient = new Service1Client(basicHttpbinding,endpointAddress);

@ ওয়ানচেয়ার্ক, আমার ক্লাসের লাইব্রেরিতে কেবলমাত্র একটি ডাব্লুএসডিএলের উল্লেখ রয়েছে। আমি এই কোডটি কোথায় রাখব? আমি এটিকে একটি সি # ডিএল হিসাবে তৈরি করি এবং আমার অ্যাপ্লিকেশন ফাইলগুলিতে dll রাখি, যেখানে আমি এটি আয়রন পাইথন থেকে উল্লেখ করি। আপনাকে ধন্যবাদ
Срба

12

ডাব্লুপিএফ (ডাব্লুসিএফ বা সিলভারলাইটের চেয়ে) ব্যবহার করার সময় যে কেউ একই সমস্যায় পড়ে:

একটি ওয়েব পরিষেবাতে সংযোগ করার সময় আমার এই ত্রুটি হয়েছিল। যখন আমার কোডটি "মূল" ডাব্লুপিএফ অ্যাপ্লিকেশন সমাধানে ছিল, কোনও সমস্যা নেই, এটি পুরোপুরি কাজ করেছিল। কিন্তু যখন আমি কোডটি আরও বুদ্ধিমান ডাল-লেয়ার সলিউশনে স্থানান্তরিত করব তখন এটি ব্যতিক্রম ছুঁড়ে ফেলবে।

সার্ভিস মডেল ক্লায়েন্ট কনফিগারেশন বিভাগে 'MyWebService.MyServiceSoap' চুক্তির জন্য ডিফল্ট এন্ডপয়েন্ট উপাদান খুঁজে পাওয়া যায় নি। এটি হতে পারে কারণ আপনার অ্যাপ্লিকেশনের জন্য কোনও কনফিগারেশন ফাইল পাওয়া যায় নি বা ক্লায়েন্টের উপাদানটিতে এই চুক্তির সাথে মেলে এমন কোনও শেষ পয়েন্ট উপাদান খুঁজে পাওয়া যায়নি।

এই থ্রেডে "স্প্রাইট" দ্বারা যেমনটি বলা হয়েছে, আপনাকে ম্যানুয়ালি ট্যাগটি অনুলিপি করতে হবে।

ডাব্লুপিএফ অ্যাপ্লিকেশনগুলির জন্য, এর অর্থ মূল ডাব্লুপিএফ অ্যাপ্লিকেশন সলিউশনে আমার ডাল সলিউশনটিতে অ্যাপকনফিগ থেকে ট্যাগটি অনুলিপি করা ।


এটি দুর্দান্ত, তবে আমার নিজের উত্তর অনুসারে একটি সংক্ষিপ্ত মন্তব্য হিসাবে ভাল হবে ঠিক যেমন "অ্যাডাম পোপ" করেছিলেন did এটি আরও অনেক লোক দ্বারা পঠিত হবে।
স্প্রাইট

4
@ স্প্রিট: আমি একটি মন্তব্য যুক্ত করব, তবে স্ট্যাকওভারফ্লো মন্তব্যগুলি সর্বদা মাত্র একটি দীর্ঘ অনুচ্ছেদ হিসাবে দেখানো হয়। আমার মতো 5-অনুচ্ছেদের উত্তরের জন্য, এটির ফলে একটি দীর্ঘ, অপঠনযোগ্য, বন্ধুত্বপূর্ণ অনুচ্ছেদে পরিণত হত। একটি পৃথক প্রতিক্রিয়া লেখার ফলে আমি একটি পরিষ্কার উত্তর দিতে পারলাম, যা অন্যান্য ব্যবহারকারীদের সাহায্য করার সম্ভাবনা বেশি (যা আসুন এটির মুখোমুখি
হোন

6

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

পদক্ষেপ:

  1. পরিষেবা রেফারেন্স ফোল্ডারে নেভিগেট করুন
  2. এটি প্রসারিত করুন
  3. রাইট ক্লিক এবং নির্বাচন পরিষেবা উল্লেখ উল্লেখ নির্বাচন করুন
  4. ওয়েব কনফিগারেশন আপডেট করা পর্যবেক্ষণ

হ্যাঁ, এটি আমার জন্য কৌশলটি করেছে। আমি একটি তৃতীয় পক্ষের ডাব্লুএসডিএল পরিষেবা রেফারেন্সটি ব্যবহার করছি এবং আমি পরিষেবা উল্লেখটি আপডেট না করা পর্যন্ত এই ত্রুটিটি
পাচ্ছিলাম

আমার জন্যও. এটি সুস্পষ্ট ছিল যেহেতু এটি কার্যকর এবং হঠাৎ করে না। আমি একটি পরিবর্তন করেছি এবং পরিষেবা রেফারেন্স আপডেট না করে থাকতে পারে।
এহ

4

ডাব্লুসিএফ পরিষেবাটির ওয়েবকনফিগকে "শেষ পয়েন্ট অ্যাড্রেস =" "বাইন্ডিং =" বেসিক হ্যাট্পবাইন্ডিং "..." হিসাবে পরিবর্তন করুন (পূর্বে বাইন্ডিং = "ডাব্লুএইচটিটিপি বাইন্ডিং") অ্যাপ্লিকেশন তৈরির পরে, "সার্ভিস রেফারেন্সে। ক্লায়েন্টকনফিগ" "" কনফিগারেশন> এর মান রয়েছে । তাহলে এটি ঠিকঠাক কাজ করবে।


3

Svcutil.exe দ্বারা উত্পাদিত আউটপুট.config এর নাম পরিবর্তন করুন app.config। এটা আমার জন্য কাজ করে।


2

আপনার কি এমন একটি ইন্টারফেস রয়েছে যা আপনার "ইউজার সার্ভিস" শ্রেণীর প্রয়োগ করে?

আপনার শেষ পয়েন্টগুলি চুক্তির বৈশিষ্ট্যের জন্য একটি ইন্টারফেস নির্দিষ্ট করা উচিত:

contract="UserService.IUserService"


1

এটি সত্যিই কোনও সমস্যা কিনা তা নিশ্চিত না, তবে আমি দেখতে পাচ্ছি যে আপনার বাঁধাইয়ের কনফিগারেশন () এর জন্য আপনার একই নাম রয়েছে।

আমি সাধারণত আমার এন্ডপয়েন্টগুলিকে "ইউজার সার্ভিস বেসিক এইচটিটিপি" বা অনুরূপ কিছু বলার চেষ্টা করি ("বাঁধাই" এখানে আসলে কিছুই করার থাকে না), এবং আমি আমার বাইন্ডিং কনফিগারেশনগুলিকে ".... কনফিগারেশন" দিয়ে কিছু বলার চেষ্টা করি, যেমন কোনও সম্ভাব্য নামের সংঘর্ষ এড়াতে "ব্যবহারকারীর পরিষেবা ডেফল্টবাইন্ডিং"।

মার্ক


0

কাজ করার জন্য কলিং অ্যাপ.config ফাইলটিতে পরিষেবা যুক্ত করতে হবে। নিশ্চিত যে আপনি কিন্তু সব পরে। এটা আমার জন্য কাজ বলে মনে হয়েছিল।


0

আপনি যখন অন্য অ্যাপ্লিকেশনটির মাধ্যমে আপনার পরিষেবাটি ব্যবহার করেন তখন এই সমস্যা দেখা দেয় application আমার পরিস্থিতিতে কোনও কনফিগার ফাইল ছিল না তাই আমি এই কৌশলটি ব্যবহার করি এবং এটি দুর্দান্ত কাজ করে application অ্যাপ্লিকেশনটিতে কেবল স্টোর ইউআরএল ঠিকানা, এটি পড়ুন এবং বেসিক এইচটিপবাইন্ডিং () পদ্ধতিটি প্যারামিটার হিসাবে পরিষেবা অ্যাপ্লিকেশনটিতে প্রেরণ করুন his এটি আমি কীভাবে করেছি তা সহজ প্রমাণ এটি:

Configuration config = new Configuration(dataRowSet[0]["ServiceUrl"].ToString());

var remoteAddress = new System.ServiceModel.EndpointAddress(config.Url);


SimpleService.PayPointSoapClient client = 
    new SimpleService.PayPointSoapClient(new System.ServiceModel.BasicHttpBinding(), 
    remoteAddress);
SimpleService.AccountcredResponse response = client.AccountCred(request);

0

যারা এর মাধ্যমে কর্মস্থানের জন্য এ এক্স 2012 AIF সেবা এবং সেখানে ফোন করতে চেষ্টা সি # বা ভিবি এ এক্স ভিতরে প্রজেক্ট (এক্স ++,) এবং এমন ত্রুটি ভোগা "ডিফল্ট শেষবিন্দু খুঁজে পাইনি" ... অথবা "কোন চুক্তি পাওয়া যায়নি" ... ফিরে যান আপনার ভিজ্যুয়াল স্টুডিও (সি #) প্রকল্পে এবং আপনার পরিষেবা ক্লায়েন্টকে সংজ্ঞায়নের আগে এই লাইনগুলি যুক্ত করুন, তারপরে প্রকল্পটি স্থাপন করুন এবং এক্স ক্লায়েন্ট পুনরায় আরম্ভ করুন এবং পুনরায় চেষ্টা করুন: দ্রষ্টব্য, উদাহরণটি নেটটসিপি অ্যাডাপ্টারের জন্য , আপনি সহজেই আপনার প্রয়োজন অনুযায়ী অন্য যে কোনও অ্যাডাপ্টার ব্যবহার করতে পারেন ।

 Uri Address = new Uri("net.tcp://your-server:Port>/DynamicsAx/Services/your-port-name");
 NetTcpBinding Binding = new NetTcpBinding();
 EndpointAddress EndPointAddr = new EndpointAddress(Address);
 SalesOrderServiceClient Client = new SalesOrderServiceClient(Binding, EndPointAddr);

-2

যদি আপনি PRISM কাঠামো ব্যবহার করে ডাব্লুপিএফ অ্যাপ্লিকেশন ব্যবহার করে থাকেন তবে আপনার প্রারম্ভিক প্রকল্পে কনফিগারেশন উপস্থিত থাকতে হবে (যেমন আপনার বুটস্ট্র্যাপার প্রজেক্টে থাকে)

সংক্ষেপে কেবল এটিকে ক্লাসের পাঠাগার থেকে সরিয়ে ফেলুন এবং একটি প্রারম্ভিক প্রকল্পে রাখুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.