ডিফল্ট এন্ডপয়েন্ট উপাদান খুঁজে পাওয়া যায় নি


369

আমি একটি ভিজিএস 800 /। নেট 3.5 সমাধানে একটি ওয়েব পরিষেবাতে একটি প্রক্সি যুক্ত করেছি। ক্লায়েন্ট তৈরি করার সময়। নেট এই ত্রুটিটি ছুড়ে ফেলে:

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

এই ত্রুটিটি অনুসন্ধান করা আমাকে চুক্তিতে পুরো নেমস্পেসটি ব্যবহার করতে বলে। পুরো নেমস্পেস সহ এখানে আমার অ্যাপকনফিগ:

<client>
  <endpoint address="http://192.168.100.87:7001/soap/IMySOAPWebService"
            binding="basicHttpBinding" bindingConfiguration="IMySOAPWebServicebinding"
            contract="Fusion.DataExchange.Workflows.IMySOAPWebService" name="IMySOAPWebServicePort" />
</client>

আমি এক্সপি স্থানীয় চালাচ্ছি (আমি এটি উল্লেখ করেছি কারণ গুগলের বেশ কয়েকটি নম্বর উইন 2 কে 3 উল্লেখ করেছে) অ্যাপকনফাইগটি app.exe.config এ অনুলিপি করা হয়েছে, তাই সমস্যাটিও নয়।

কোন সংকেত সনাক্ত করুন?


এটি যদি কোনও ওয়েব সার্ভারে চলমান থাকে তবে আপনাকে .svc যুক্ত করতে হবে। উদাহরণ: " 192.168.100.87:7001/soap/IMySOAPWebService.svc
ড্যারেন সি

পরিষেবাটি একটি। নেট সেবা নয়, এটি কোনও ওয়েব সার্ভারে চলছে না।
এডোসফ্ট

নেট থেকে তৈরি প্রকল্পগুলিতে আমি এই সমস্যাটি সমাধান করেছি, তবে আমার ভিবি 6 তে কিছু প্রকল্প রয়েছে এবং আমারও একই সমস্যা রয়েছে। কোন ধারনা?
গ্যাব্রিয়েল ইন্ট্রিয়াগো

উত্তর:


588

"আপনি যদি ক্লাস লাইব্রেরিতে পরিষেবাটি কল করে এবং অন্য প্রকল্প থেকে ক্লাস লাইব্রেরি কল করে থাকেন তবে এই ত্রুটি দেখা দিতে পারে।"

এক্ষেত্রে আপনাকে ডাব্লুএস কনফিগারেশন সেটিংসকে মূল প্রকল্পগুলির অ্যাপকনফাইগের সাথে অন্তর্ভুক্ত করতে হবে যদি এটি একটি ওয়েব অ্যাপ হয় তবে এটি একটি উইনাপ বা ওয়েবকনফিগ। এটি PRISM এবং ডাব্লুপিএফ / সিলভারলাইট সহ এমনকি যাওয়ার উপায়।


1
এটি আমার নির্দিষ্ট সমস্যার কারণ ছিল না তবে আমি নিশ্চিত যে এটি অন্যকে সহায়তা করবে। ধন্যবাদ
এডোসফট

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

1
আমি ডাব্লুপি 7 অ্যাপের জন্য একই ত্রুটি পাচ্ছি (আমি বিশ্বাস করি সিলভারলাইট) এবং ServiceReferences.ClientConfigপ্রকল্প ডিরেক্টরিতে উত্পন্ন হয়েছে তা লক্ষ্য করতে আমার অনেক বেশি সময় লেগেছে । অনুলিপি করা হচ্ছে <bindings>এবং <client>আমার মূল অ্যাপ্লিকেশন (যা পূর্বে খালি ছিল) আমার লাইব্রেরিতে ফাইল থেকে উপাদানগুলি কাজ কিছু পেয়েছিলাম।
ডেভিড ম্যাসন

4
এটি হওয়ার কারণ (যেমন আমি এটি বুঝতে পেরেছি) হ'ল মূল প্রকল্প থেকে কনফিগার মানগুলি একটি সমাধানে পড়া হয় that ওয়েব, উইনফর্মস, ডাব্লুপিএফ ইত্যাদি হন Say উদাহরণস্বরূপ বলুন আপনার কাছে কোনও ডাটাবেস অ্যাক্সেস করার জন্য একটি ক্লাস লাইব্রেরি প্রকল্প রয়েছে, সংযোগের স্ট্রিং এন্ট্রি ক্লাস লাইব্রেরি কনফিগার না করে মূল প্রকল্প কনফিগারেশনে থাকা দরকার।
Ciaran Bruen

6
সুতরাং আমরা এই উপসংহারে পৌঁছাতে পারি যে, আমরা যদি কোনও লাইব্রেরিতে ডাব্লুসিএফ ব্যবহার করি তবে স্ট্যাকওভারফ্লো / সিকিউশনস / 868৮৮79৯৮/২ দেখানো লিঙ্কের মতো কোড সেটিংসে সরাসরি থাকা ভাল ।
ইয়ংজায়ে

90

আমি নিজেই বাইন্ডিং এবং এন্ডপয়েন্টের ঠিকানা দৃষ্টান্ত তৈরি করে এটি সমাধান করেছি (আমি মনে করি অন্যেরা যেমন পরামর্শ দিতে পারে) - কারণ আমি কনফিগার ফাইলগুলিতে নতুন সেটিংস যুক্ত করতে চাইনি (এটি বিদ্যমান কিছু লাইব্রেরি কোডের প্রতিস্থাপন যা বহুল ব্যবহৃত হয়, এবং পূর্বে কোনও পুরানো ওয়েব পরিষেবাদি রেফারেন্স ইত্যাদি ব্যবহার করেছিল) এবং তাই আমি সর্বত্র নতুন কনফিগারেশন সেটিংস যুক্ত না করে এটিকে ফেলে দিতে সক্ষম হতে চাই।

var remoteAddress = new System.ServiceModel.EndpointAddress(_webServiceUrl);

using (var productService = new ProductClient(new System.ServiceModel.BasicHttpBinding(), remoteAddress))
{
    //set timeout
    productService.Endpoint.Binding.SendTimeout = new TimeSpan(0,0,0,_webServiceTimeout);

    //call web service method
    productResponse = productService.GetProducts();
} 

সম্পাদন করা

আপনি যদি https ব্যবহার করছেন তবে আপনার BasicHttpsBindingপরিবর্তে ব্যবহার করা দরকার BasicHttpBinding


1
এটি একটি সহায়ক উত্তর। যে ওয়েব পরিষেবাটি আমি ব্যবহার করছি তাতে কাস্টম এন্ডপয়েন্টটি অবজেক্টের প্রাথমিক ঘোষণায় আবদ্ধ হতে হয়েছিল। আমি পরে এটি করার চেষ্টা করলে এটি কাজ করবে না।
পল মোরেল 22

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

একটি কবজ কাজ করে! আমি আমার অ্যাপ্লিকেশনটির সাথে একটি "app.config" ফাইল বিতরণের পরিবর্তে কোডে এন্ডপয়েন্টটি সেট করতে সক্ষম হতে পছন্দ করি।
ড্যানিয়েল জি

1
যদি এটি কোনও এইচটিপিএস ওয়েব পরিষেবা বেসিক এইচটিপবাইন্ডিং () কে বেসিক এইচটিপস বাইন্ডিং () এ পরিবর্তন করতে মনে রাখে
অ্যান্টনি

এই সমাধানটি এক্সেল-ডিএনএ-এর মতো অ্যাপ্লিকেশনগুলির পক্ষে সেরা যাটিতে অ্যাপকনফিগ বা ওয়েবকনফিগ নেই।
ব্যবহারকারী 781700

75

বেশ কয়েকটি বিকল্প পরীক্ষা করে, শেষ পর্যন্ত ব্যবহার করে এটি সমাধান করেছি

চুক্তি = "IMySOAPWebService"

অর্থাৎ কনফিগারেশনে পুরো নামস্থান ছাড়াই sp কিছু কারণে পুরো নামটি সঠিকভাবে সমাধান হয়নি


3
দেখে মনে হচ্ছে, চুক্তির নামটি ক্লায়েন্টের মতো ঠিক একইভাবে লিখতে হবে। আমার ক্ষেত্রে, আমি কাজটি var proxy = new ExternalServices.ServiceClient("MyServiceEndpoint");করেছি যখন আমি চুক্তির সাথে নাম স্থান যুক্ত করেছি:contract="ExternalServices.IMyService"
আনাতোলি মিরনভ

এটি আমার পক্ষে কাজ করে নি। আমার সমস্যাটি কিছুটা আলাদা হতে পারে। আমি এই ত্রুটিটি সময়ে সময়ে পাই না। বিষয়টি কী হতে পারে। সার্ভিস দিক থেকে কি ত্রুটি হতে পারে ?_ ধন্যবাদ
আলবাট্রস

57

আমি এই একই সমস্যা ছিল। দেখা যাচ্ছে যে কোনও ওয়েব রেফারেন্সের জন্য আপনাকে কনস্ট্রাক্টরের প্রথম প্যারামিটার হিসাবে ইউআরএল সরবরাহ করতে হবে:

new WebService.WebServiceSoapClient("http://myservice.com/moo.aspx");

নতুন স্টাইলের ওয়েব সার্ভিস রেফারেন্সের জন্য আপনাকে এমন একটি নাম সরবরাহ করতে হবে যা কনফিগারেশনে একটি এন্ডপয়েন্ট পয়েন্ট প্রবেশ করিয়ে দেয়:

new WebService.WebServiceSoapClient("WebServiceEndpoint");

একটি অনুরূপ এন্ট্রি সঙ্গে Web.configবা App.config:

<client>
      <endpoint address="http://myservice.com/moo.aspx"
        binding="basicHttpBinding" 
        bindingConfiguration="WebService"
        contract="WebService.WebServiceSoap"
        name="WebServiceEndpoint" />
    </client>
  </system.serviceModel>

"এটি একটি পুরানো প্রোগ্রামে কাজ করেছে" ... এর সুড়ঙ্গ দৃষ্টি মুছে ফেলার পক্ষে খুব খারাপ কাজ ...


3
আহ হা! এটি আমার জন্য এটি স্থির করে দিয়েছে, আমি কেবল একটি খালি নির্মাণকারীর আগে ব্যবহার করছিলাম, যা ব্যর্থ হয়ে পড়েছিল: নতুন ওয়েবসেসার্স.উইবসওয়ারসোসোপ্লাই ক্লায়েন্ট (); // ব্যর্থ
ট্র্যাভিস

এই সলুটিন কাজ করেছে !!! তবে, আমি সত্যিই আগ্রহী যে ডিফল্ট শেষ পয়েন্টটি কেন লোড করা হয়নি? কোন ধারণা কি কারণ হতে পারে?
দিপ্তি মেহতা

@ অ্যান্ডোমার একটি পুরানো সুতো আনতে দুঃখিত। একের কি অন্যের থেকে কোনও সুবিধা রয়েছে - ওয়েব-রেফারেন্স এবং সার্ভিস রেফারেন্স? আমার মনে হয় প্রাক্তনটি আমার পক্ষে আরও সুবিধাজনক হবে তবে সার্ভিস রেফারেন্স হ'ল নতুন অনুমান করা জিনিসটি ...
কেভ

17

আমার এমন অবস্থা ছিল, যেখানে আমার ছিল

  • ডাব্লুসিএফ পরিষেবা কোথাও হোস্ট করা হয়েছে
  • মূল প্রকল্প
  • 'শ্রেণীর পাঠাগার' টাইপের ভোক্তা প্রকল্প যা একটি ডাব্লুসিএফ পরিষেবাতে পরিষেবা উল্লেখ রয়েছে
  • প্রধান প্রকল্প গ্রাহক প্রকল্প থেকে পদ্ধতি কল করে

এখন গ্রাহক প্রকল্পের সাথে সম্পর্কিত সমস্ত কনফিগারেশন সেটিং ছিল <system.serviceModel> আমার অ্যাপকনফাইগের ট্যাগে ছিল, এটি এখনও উপরের মতো একই ত্রুটিটি ছুঁড়েছিল।

আমি যা করেছি তা সবই <system.serviceModel>আমার মূল প্রকল্পের অ্যাপকনফাইগ ফাইলে একই ট্যাগ যুক্ত করা হয়েছে এবং শেষ পর্যন্ত আমরা যেতে পেরেছি।

আসল সমস্যাটি যতটা আমার ক্ষেত্রে ছিল, এটি ভুল কনফিগারেশন ফাইলটি পড়ছিল। ভোক্তার অ্যাপকনফাইগের পরিবর্তে, এটি মূল প্রকল্পের কনফিগারেশন উল্লেখ করছে। এটি বের করতে আমার দুই ঘন্টা সময় লেগেছে।


1
একই। <system.serviceModel>আপনার লাইব্রেরিতে অনুসন্ধান করুন , তারপরে এটি আপনার মূল অ্যাপ্লিকেশনটির অ্যাপ্লিকেশন to ক্লাস লাইব্রেরি অ্যাপকনফাইগগুলির কেবলমাত্র আর একটি লক্ষণ যা রান সময়ে পড়ছে না। আমি এই পর্যবেক্ষণের জন্য ক্ষতিপূরণ দিতে খুব বেশি সময় ব্যয় করি (ইমো)। যদি আমি লাইব্রেরিটির অ্যাপ্লিকেশনটি কনফিগ থেকে এটি কনফিগার করতে পারি তবে তা দিন। অন্যথায়, কেন প্রথম স্থানে ক্লাস লাইব্রেরিগুলির জন্য একটি অ্যাপ কনফিগ আছে ??
স্টিভসিংক

15

"আপনি যদি ক্লাস লাইব্রেরিতে পরিষেবাটি কল করে এবং অন্য প্রকল্প থেকে ক্লাস লাইব্রেরি কল করে থাকেন তবে এই ত্রুটি দেখা দিতে পারে।"

"এক্ষেত্রে আপনার ডাব্লুএস কনফিগারেশন সেটিংসকে মূল প্রকল্প অ্যাপকনফাইগের সাথে অন্তর্ভুক্ত করতে হবে যদি এটি একটি ওয়েব অ্যাপ যদি একটি উইন্যাপ বা ওয়েবকনফিগ হয় PR এটি PRISM এবং ডাব্লুপিএফ / সিলভারলাইট দিয়েও যাওয়ার উপায়" "

হ্যাঁ, তবে আপনি যদি মূল প্রকল্পটি পরিবর্তন করতে না পারেন (উদাহরণস্বরূপ অর্গার্ড সিএমএস), আপনি আপনার প্রকল্পে ডাব্লুসিএফ পরিষেবা কনফিগারেশন রাখতে পারেন।

আপনার ক্লায়েন্ট উত্পাদন পদ্ধতি সহ একটি পরিষেবা সহায়ক তৈরি করতে হবে:

public static class ServiceClientHelper
{
    public static T GetClient<T>(string moduleName) where T : IClientChannel
    {
        var channelType = typeof(T);
        var contractType = channelType.GetInterfaces().First(i => i.Namespace == channelType.Namespace);
        var contractAttribute = contractType.GetCustomAttributes(typeof(ServiceContractAttribute), false).First() as ServiceContractAttribute;

        if (contractAttribute == null)
            throw new Exception("contractAttribute not configured");

        //path to your lib app.config (mark as "Copy Always" in properties)
        var configPath = HostingEnvironment.MapPath(String.Format("~/Modules/{0}/bin/{0}.dll.config", moduleName)); 

        var configuration = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap { ExeConfigFilename = configPath }, ConfigurationUserLevel.None);
        var serviceModelSectionGroup = ServiceModelSectionGroup.GetSectionGroup(configuration);

        if (serviceModelSectionGroup == null)
            throw new Exception("serviceModelSectionGroup not configured");

        var endpoint = serviceModelSectionGroup.Client.Endpoints.OfType<ChannelEndpointElement>().First(e => e.Contract == contractAttribute.ConfigurationName);
        var channelFactory = new ConfigurationChannelFactory<T>(endpoint.Name, configuration, null);
        var client = channelFactory.CreateChannel();
        return client;
    }
}

এবং এটি ব্যবহার করুন:

using (var client = ServiceClientHelper.GetClient<IDefaultNameServiceChannel>(yourLibName)) {
                ... get data from service ...
            }

এই নিবন্ধে বিশদ দেখুন ।


15

ক্লাস ফাইল থেকে পরিষেবাটি রেফারেন্স করার ক্ষেত্রে মন-অদ্ভুতভাবে অস্পষ্ট ত্রুটির মুখোমুখি হওয়ার সময় এখানে বেশ কয়েকটি প্রতিক্রিয়া সঠিক সমাধানের দিকে ঝুঁকছে: আপনার কনসোল বা উইন্ডো অ্যাপ্লিকেশনটির অ্যাপ্লিকেশন কনফিগের ওয়েব কন্টিগ্রেটে সার্ভিস কনফিগার তথ্যটি অনুলিপি করুন। এই উত্তরগুলির মধ্যে কোনওটি আপনাকে কী অনুলিপি করতে হবে তা দেখায় বলে মনে হয় না। এর চেষ্টা করুন এবং এটি সংশোধন করা যাক।

"ক্লাস লাইব্রেরির কনফিগারেশন ফাইলটি, আমার কনসোল অ্যাপ্লিকেশনটির কনফিগারেশন ফাইলে যা অনুলিপি করেছিলাম সেখান থেকে এখানে" ট্রান্সলেশনসোসরআউটবাউন্ড "নামক একটি পরিষেবা লিখি service

আপনি মূলত সিস্টেমের অভ্যন্তরে সমস্ত কিছু চান serv সার্ভিসমোডেল বিভাগ:

  <system.serviceModel>
<bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_ITranslationServiceOutbound" />
  </basicHttpBinding>
</bindings>
<client>
  <endpoint address="http://MyHostName/TranslationServiceOutbound/TranslationServiceOutbound.svc"
    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ITranslationServiceOutbound"
    contract="TranslationService.ITranslationServiceOutbound" name="BasicHttpBinding_ITranslationServiceOutbound" />
</client>


14

এই আমাকে পাগল করেছে।

আমি ডাব্লুসিএফের সাথে সিলভারলাইট 3 প্রিজম (সিএবি) ব্যবহার করছি

আমি যখন প্রিজম মডিউলে ডাব্লুসিএফ পরিষেবা কল করি তখন আমি একই ত্রুটি পাই:

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

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

তারপরে আমার ওয়েব প্রকল্পের ক্লায়েন্টবিন ফোল্ডারের জন্য নতুন .xap ফাইলটি তৈরি করতে আমাকে শেল অ্যাপটি পুনরায় তৈরি করতে হয়েছিল।

এখন কোডের এই লাইনটি শেষ পর্যন্ত কাজ করে:

MyServiceClient myService = new MyServiceClient();

11

আমি এইএসপি.এনইটি অ্যাপ্লিকেশনটির মধ্যে এই ত্রুটিটি পাচ্ছিলাম যেখানে ডাব্লুসিএফ পরিষেবাটি একটি ক্লাসের লাইব্রেরিতে যুক্ত করা হয়েছিল যা বিন ফোল্ডারে রেফারেন্সড। ডিএল ফাইল হিসাবে এএসপি.এনইটি অ্যাপ্লিকেশনটিতে যুক্ত করা হচ্ছে। ত্রুটিটি সমাধান করার জন্য, ক্লাস লাইব্রেরির মধ্যে অ্যাপ্লিকেশন কনফিগ ফাইলে কনফিগারেশন সেটিংসকে ডাব্লুসিএফ পরিষেবাটি এএসপি.নেট সাইট / অ্যাপ্লিকেশানের ওয়েবকনফিগ সেটিংসে অনুলিপি করা প্রয়োজন।


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

10

আমি খুঁজে পেলাম (ক্লাস লাইব্রেরি ইন্টারফেসটি ব্যবহার করার সময় ক্লায়েন্ট ইউআইয়ের অ্যাপকনফাইগের অনুলিপি করার পাশাপাশি) আমাকে পরিষেবা রেফারেন্সের নামটির সাথে বাইন্ডিংয়ের নামটি উপস্থাপন করতে হয়েছিল (খনিটি আমার ServiceReference নীচে রয়েছে)।

উদাহরণ:

<endpoint address="http://localhost:4000/ServiceName" binding="basicHttpBinding"
      bindingConfiguration="BasicHttpBinding_ISchedulerService"
      contract="ServiceReference.ISchedulerService" 
      name="BasicHttpBinding_ISchedulerService" />

পরিবর্তে ডিফল্ট উত্পন্ন:

<endpoint address="http://localhost:4000/ServiceName" binding="basicHttpBinding"
      bindingConfiguration="BasicHttpBinding_ISchedulerService"
      contract="ISchedulerService" 
      name="BasicHttpBinding_ISchedulerService" />

1
আমাকেও একই কাজ করতে হয়েছিল। আমি সত্যিই বুঝতে পারি না কেন।
ব্রিগ

8

আমার একই সমস্যা ছিল, কিন্তু চুক্তির নাম স্থান পরিবর্তন করা আমার পক্ষে কার্যকর হয়নি। সুতরাং আমি। নেট 3.5 পরিষেবা রেফারেন্সের পরিবর্তে নেট 2 স্টাইলের ওয়েব রেফারেন্স চেষ্টা করেছি। কাজ করেছে।

ভিজ্যুয়াল স্টুডিও ২০০৮-এ একটি ওয়েব রেফারেন্স ব্যবহার করতে, 'পরিষেবা রেফারেন্স যুক্ত করুন' এ ক্লিক করুন, তারপরে ডায়ালগ বক্সটি উপস্থিত হলে 'অ্যাডভান্সড' ক্লিক করুন। এতে আপনি একটি বিকল্প পাবেন যা আপনাকে পরিষেবা রেফারেন্সের পরিবর্তে ওয়েব রেফারেন্স ব্যবহার করতে দেয়।


2
এটিই আমি শেষ করতে পেরেছি। আমি সমস্যাটি আমার কাছে বোধগম্য হতে চাই।
জারেট উইডম্যান

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

একমত। আমার একই সমস্যা ছিল এবং এটি ওয়েব রেফারেন্সে পরিবর্তন করে এটি ঠিক করেছিলাম।
স্টিফেন হোসিং

7

একটি গ্রাহকবিহীন অ্যাপ্লিকেশন যা কোনও পরিষেবা গ্রাস করে সেগুলির পরীক্ষা করা এই সমস্যার কারণ হতে পারে।

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

ইউনিট পরীক্ষা প্রকল্পে একটি পরিষেবা রেফারেন্স যুক্ত করা আমার সমস্যার সমাধান করেছে।


7

আমার ইউনিট পরীক্ষায় একটি পরিস্থিতি রয়েছে। আমি ইউনিট পরীক্ষা প্রকল্পে app.config ফাইলটি অনুলিপি করেছি। সুতরাং ইউনিট পরীক্ষা প্রকল্পেও শেষের তথ্য রয়েছে contains


2
আমি সম্পূর্ণ app.config অনুলিপি করিনি, তবে system.serviceModelবিভাগটি। এখানেই শেষ!
kwrl

একই, আমি system.serviceModelকনসোল অ্যাপ্লিকেশনটির app.config অনুলিপি ব্যতীত
AlbatrossCafe

5

আমি একবার এই সমস্যার মুখোমুখি হয়েছিলাম। কারণ আমি এখনও ইন্টারফেসটি তৈরি করে যা ডাব্লুসিএফ পরিষেবা ব্যবহার করে। আমি পরীক্ষার অ্যাপ্লিকেশন এবং অবিরত বিকাশ কনফিগার করেছি। তারপরে বিকাশে, আমি পরিষেবাগুলির কিছু নামস্থান পরিবর্তন করেছি। সুতরাং আমি ডাব্লুসিএফ ক্লাসের সাথে মেলে ওয়েবকোনফাইগের "সিস্টেম.সওয়ারিসমোডেল -> ক্লায়েন্ট -> শেষ পয়েন্ট -> চুক্তি" ডাবল চেক করেছি। তাহলে সমস্যার সমাধান হয়।


4

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


3

আমার একই সমস্যা রয়েছে I আমি ক্লাস লাইব্রেরিতে ডব্লিউসিএফ পরিষেবা <system.serviceModel>ব্যবহার করেছি এবং উইন্ডোজ অ্যাপ্লিকেশন প্রকল্প <system.serviceModel>থেকে ক্লাস লাইব্রেরি কল করছি ut তবে উইন্ডোজ অ্যাপ্লিকেশনটির কনফিগার ফাইলের পরিবর্তন আমি ভুলে যাচ্ছি ক্লাস লাইব্রেরির অ্যাপের মতোই। কনফিগ ফাইল।
সমাধান: বাইরের প্রকল্পের কনফিগারেশন একই শ্রেণীর পাঠাগারটির ডাব্লুসিএফ কনফিগারেশন পরিবর্তন করুন।


3

হাই আমি একই সমস্যার মুখোমুখি হয়েছি তবে সবচেয়ে ভাল সমাধান হ'ল .NET কে আপনার ক্লায়েন্টের পাশের কনফিগারেশনটি কনফিগার করতে দেওয়া। আমি যখন আবিষ্কার করি তখন এটি হ'ল আমি যখন কোনও http: /namespace/service.svc? Wsdl = wsdl0 এর কোয়েরি স্ট্রিং সহ কোনও পরিষেবা রেফারেন্স যুক্ত করি এটি ক্লায়েন্টের পাশে কনফিগারেশন এন্ডপয়েন্টগুলি তৈরি করে না। তবে আমি যখন wsdl-wsdl0 অপসারণ করি এবং কেবল url http: /namespace/service.svc ব্যবহার করি তা ক্লায়েন্ট কনফিগারেশন ফাইলে এন্ডপয়েন্ট কনফিগারেশন তৈরি করে। সংক্ষিপ্ত রিমোর জন্য "?? ডাব্লুএসডিএল = ডাব্লুএসডিএল 0"।


3

ক্লাস ফিল্ড হিসাবে পরিষেবা ক্লায়েন্ট ঘোষণার লাইন রাখবেন না, এর পরিবর্তে, ব্যবহৃত প্রতিটি পদ্ধতিতে উদাহরণ তৈরি করুন So সুতরাং সমস্যাটি ঠিক হয়ে যাবে be আপনি যদি ক্লাস ফিল্ড হিসাবে পরিষেবা ক্লায়েন্ট উদাহরণ তৈরি করেন, তবে ডিজাইনের সময় ত্রুটি ঘটে!


3

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


2

আপনি যদি ক্লাস লাইব্রেরিতে পরিষেবাটি কল করতে এবং ক্লাস লাইব্রেরিতে অন্য প্রকল্প থেকে কল করে থাকেন তবে এই ত্রুটি দেখা দিতে পারে।


2

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

প্রক্সি সমাধান:

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


2

ঠিক আছে. আমার কেসটি কিছুটা পৃথক ছিল তবে শেষ পর্যন্ত আমি এর সমাধানটি পেয়েছি: আমার কাছে একটি কনসোল রয়েছে EXএক্সই -> ডিএলএল -> ডাব্লুএস 1 -> ডিএলএল -> ডাব্লুএস 2 আহ্বান করা হচ্ছে

কনসোল.এক্সইএফস কনফিগে আমার কাছে ডাব্লুএস 1 এর পরিষেবা মডেল এবং ডাব্লুএস 2 এর কনফিগারেশন রয়েছে recommended - সমস্যা সমাধান না।

তবে এটি এখনও কার্যকর হয়নি, যতক্ষণ না আমি ডাব্লুএস 2 এর ওয়েব রেফারেন্সটি ডাব্লুএস 1 এর সাথে যুক্ত করেছি এবং কেবলমাত্র ডিএলএলকেই না যা সত্যই ডাব্লুএস 2 এর প্রক্সি তৈরি করে এবং অনুরোধ করে।


2

আপনি যদি আপনার ক্লাসের লাইব্রেরিতে ওয়েব পরিষেবাটি উল্লেখ করেন তবে আপনাকে উইন্ডোজ অ্যাপ্লিকেশন বা কনসোল অ্যাপ্লিকেশনটিতে app.config অনুলিপি করতে হবে

সমাধান: বাইরের প্রকল্পের কনফিগারেশন একই শ্রেণীর পাঠাগারটির ডাব্লুসিএফ কনফিগারেশন পরিবর্তন করুন।

আমার জন্য কাজ করেছেন


2

আমার একই সমস্যা
ছিল আমি ডেস্কটপ অ্যাপ্লিকেশন ব্যবহার করে এবং গ্লোবাল ওয়েদার ওয়েব পরিষেবা ব্যবহার করছিলাম

আমি পরিষেবাটি উল্লেখ মুছে ফেলেছি এবং ওয়েব রেফারেন্স এবং সমস্যা সমাধান করার জন্য যুক্ত করেছি Thanks


2

আমার পক্ষে ক্লায়েন্টের ওয়েবপঞ্জিফাইন্ডের এন্ডপয়েন্ট নামটির বৈশিষ্ট্য থেকে শেষ পয়েন্টটির নাম সরিয়ে ফেলা ছিল এটি প্রক্সিটি ব্যবহারের অনুমতি দিয়েছে

ChannelFactory<TService> _channelFactory = new ChannelFactory<TService>("");

পুরো দিনটি ব্যয় করতে কেবল সময় নিয়েছিল। এই ত্রুটিটি ঠিকঠাক হয়ে যাওয়ার পরে চুক্তির নামটি ভুল ছিল যদিও প্রাথমিক ত্রুটি উপস্থিত হওয়ার পরে এটি ভুল ছিল। চুক্তির নামের লোকের জন্য দ্বিগুণ তারপর ট্রিপল চেক !! বৈশিষ্ট্য: আয়ান


2

আমাকে আরও একটি জিনিস সন্ধান করার অনুমতি দিন। ( টম হাইজের উত্তর এটি ইতিমধ্যে ইঙ্গিত করে, তবে আমি স্পষ্ট হতে চাই)

আমার web.configফাইলে নিম্নলিখিত সংজ্ঞা দেওয়া হয়েছিল:

<protocolMapping>
    <add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>

আমি ইতিমধ্যে একটি রেফারেন্সের জন্য বেসিক এইচটিপিএস বাইন্ডিং ব্যবহার করছিলাম, তবে তারপরে আমি একটি নতুন রেফারেন্স যুক্ত করেছি যার জন্য বেসিক এইচটিপিবাইন্ডিংয়ের প্রয়োজন নেই s আমাকে যা করতে হয়েছিল তা হ'ল এটি আমার নীচে যুক্ত হয়েছিল protocolMapping:

<protocolMapping>
    <add binding="basicHttpBinding" scheme="http" />
    <add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>

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


2

আমি যখন গ্লোবাল স্কোপ অপারেটর ছাড়াই কনফিগারেশন ফাইল উপাদানটিতে চুক্তিটি উল্লেখ করছিলাম তখন আমার এই ত্রুটি হয়েছিল।

অর্থাত

<endpoint contract="global::MyNamepsace.IMyContract" .../>

কাজ করে, কিন্তু

<endpoint contract="MyNamepsace.IMyContract" .../>

"চুক্তির উল্লেখ করে এমন ডিফল্ট এন্ডপয়েন্ট উপাদান খুঁজে পাওয়া যায়নি" ত্রুটি দেয়।

মাইনেম্পেসে.আইএমইআর কনট্রাক্ট সহ অ্যাসেমব্লিটি মূল অ্যাপ্লিকেশনটির জন্য আলাদা আলাদা সমাবেশে রয়েছে, সুতরাং এটি বিশ্বব্যাপী স্কোপ রেজোলিউশনটি ব্যবহারের প্রয়োজনীয়তার ব্যাখ্যা দিতে পারে।


2

আপনি যখন কোনও পরিষেবা রেফারেন্স যুক্ত করছেন

এখানে চিত্র বর্ণনা লিখুন

আপনি যে নামটি টাইপ করছেন তা সম্পর্কে সাবধান থাকুন:

এখানে চিত্র বর্ণনা লিখুন

আপনার এটি আপনার ইন্টারফেসের নামে যুক্ত করা উচিত:

<client>
  <endpoint address="http://192.168.100.87:7001/soap/IMySOAPWebService"
            binding="basicHttpBinding" 
            contract="MyNamespace.IMySOAPWebService" />
</client>

2

আমি একই ত্রুটি পেয়েছি এবং আমি অনেকগুলি চেষ্টা করেছি কিন্তু কাজ করি না, আমি দেখেছি যে আমার "চুক্তি" সমস্ত প্রকল্পে এক নয়, আমি চুক্তিটি পরিবর্তন করেছি যেমন সমাধানের সমস্ত প্রকল্পের জন্য একই রকম হয় এবং এটি কাজ করে। এটি প্রকল্প এ

<client>
    <endpoint address="https://xxxxxxxx" binding="basicHttpBinding" bindingConfiguration="basic" contract="ServiceReference.IIntegrationService" name="basic" />
</client>

প্রকল্প বি:

<client>
    <endpoint address="xxxxxxxxxxxxx" binding="basicHttpBinding" bindingConfiguration="basic" contract="ServiceReference1.IIntegrationService" name="basic" />
</client>

অবশেষে আমি উভয়ের জন্য পরিবর্তিত হয়েছি:

<client>
    <endpoint address="https://xxxxxxxxxxx" binding="basicHttpBinding" bindingConfiguration="basic" contract="MyServiceReferrence.IIntegrationService" name="basic" />
</client>

1

আমার একই সমস্যা ছিল এবং এটি কেবল তখনই সমাধান করা হয়েছিল যখন হোস্ট অ্যাপ্লিকেশন এবং সেই শেষ পয়েন্টটি ব্যবহার করে এমন dll এর একই পরিষেবা উল্লেখের নাম ছিল।

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